우주선이 파괴되면 우주선의 이미지 목록을 포함하는 목록을 만듭니다. 픽셀은 내 Pixel 클래스의 객체입니다. 리스트를 생성 한 후에 메인리스트에 추가되어 다양한 액션이 수행됩니다. 내 코드는 다음과 같습니다.BufferedImage에서 픽셀 읽기 - 잘못된 색상 값
//Code which creates an array
List<Pixel> pixels = new LinkedList<>();
BufferedImage buff = (BufferedImage)image;
for (int px = 0; px < buff.getWidth(); px++) {
for (int py = 0; py < buff.getHeight(); py++) {
int rgb = buff.getRGB(px, py);
int red = (rgb & 0x00ff0000) >> 16;
int green = (rgb & 0x0000ff00) >> 8;
int blue = rgb & 0x000000ff;
int alpha = (rgb >> 24) & 0xff;
if (alpha == 255) {
pixels.add(new Pixel(px, py, red, green, blue));
}
}
}
//Pixel class constructor
Pixel(float x, float y, int red, int green, int blue) {
super(x, y);
BufferedImage buff = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
WritableRaster raster = buff.getRaster();
//LOOKS EVERYTHING IS OKAY SINCE THIS LINE SO THE ERROR MUST BE SOMEWHERE IN THOSE 2 LINES
raster.setPixel(0, 0, new int[]{red, blue, green, 255});
image = buff;
}
간단한 설명 : 이미지는 이미지 형식의 개인 필드입니다. drawImage() 메서드를 사용하여 픽셀을 칠하는 repaint() 메서드에 사용됩니다. 내 문제에 대해서 : Eveything은 거의 정상적으로 작동합니다. 픽셀은 올바른 위치에 있지만 모두 보라색입니다. 그들은 서로 다른 색조 (더 밝고 어두움)를 가지고 있지만 이미지의 색과 동일한 색을 가지지 않고 모두 보라색입니다! 왜 이런 일이 일어나는 걸까요? 왜 보라색입니까? 누군가 내가이 이상한 행동을 이해하지 못하게 도와 줄 수 있을까요?
더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –