1

double[] img; に格納されている特定の長さと幅の画像を反転する必要があります。配列を扱うのはこれが初めてです。命令は、for ループ、y(行) の外側のループ、x(列) の内側のループを入れ子にし、各水平配列を逆にする必要があります。これは私が持っているもので、機能していません。

width = ImageLibrary.getImageWidth();
height = ImageLibrary.getImageHeight();

  for(i = 0; i < width ; i++){
    for(j = 0; j < height ; j++){
       for(int k = 0; k < img.length/2; k++){
           double temp = img[k];
           img[i] = img[img.length - k - 1];
           img[img.length - k - 1] = temp;
}
    }
  }  

私は本当に何をすべきかわからないのですか?水平配列を逆にするように言われたら、正しくやっていますか? ありがとうございました

4

1 に答える 1

3

あなたが探しているのはもっとこのようなものだと思います

width = ImageLibrary.getImageWidth();
height = ImageLibrary.getImageHeight();

// Loop from the top of the image to the bottom
for (y = 0; y < height ; y++) {

    // Loop halfway across each row because going all the way will result
    // in all the numbers being put back where they were to start with
    for (x = 0; x < width / 2 ; x++) {

        // Here, `y * width` gets the row, and `+ x` gets position in that row
        double temp = img[y * width + x];

        // Here, `width - x - 1` gets x positions in from the end of the row
        // Subtracting 1 because of 0-based index
        img[y * width + x] = img[y * width + (width - x - 1)];
        img[y * width + (width - x - 1)] = temp;
    }
}

これで画像が鏡像化されるので、左側が右側になり、右側が左側になります。

于 2013-03-27T19:06:20.507 に答える