3

grayscale の画像が与えられた場合、その場所のグレースケールのピクセル値を取得するにはどうすればよいですか?

これにより、temp が-16777216常に (黒) として出力されます。

public void testMethod()
{
    int width = imgMazeImage.getWidth();
    int height = imgMazeImage.getHeight();

    //Assign class variable as a new image with RGB formatting
    imgMazeImage = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);
    for(int i=0; i < width; i ++){
        for(int j=0; j < height; j++)
        {
            //Grab and set the colors one-by-one
            inttemp = imgMazeImage.getRGB(j, i);
            System.out.println(temp);
        }
    }
}
4

1 に答える 1

2

新しい空白の画像を作成し、それをクラス変数に割り当てています。

imgMazeImage = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);

ピクセルはデフォルト値で作成され、まだピクセルの色を操作していないため、印刷する段階ではすべて同じ色 (黒) であるという論理があります。

また、幅が高さと等しくない場合、コードが失敗する可能性があります。forループによると、iは幅に沿って走り、jは高さに沿って走ります。したがって、変更する必要があります

int temp = imgMazeImage.getRGB(j, i);

int temp = imgMazeImage.getRGB(i, j);
于 2011-09-14T00:55:58.893 に答える