3 차원의 2D 배열 (이미지의 R, G, B 값을 나타냄), 폭과 높이, 지정된 이미지가 컬러인지 검은인지를 나타내는 부울 값을 취하는 메소드를 작성했습니다 및 흰색. 메소드가 원하는 것은 주어진 입력 데이터로부터 BufferedImage를 생성하는 것입니다. 여기 커스텀 BufferedImage의 생성
내가 지금까지 무엇을 가지고 :public static BufferedImage createImage(int[][] r, int[][] g, int[][] b,
int width, int height, boolean isColor) {
BufferedImage ret;
if (isColor)
ret = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
else
ret = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);
WritableRaster raster = ret.getRaster();
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
if (isColor) {
raster.setSample(j, i, 0, r[i][j]);
raster.setSample(j, i, 1, g[i][j]);
raster.setSample(j, i, 2, b[i][j]);
}
else
raster.setSample(j, i, 0, r[i][j]);
}
}
return ret;
}
을 그러나, 나는 (255, 255, 255)을 흰색으로 채워진 5 × 5 색 이미지를 만들어야합니다 단위 테스트를 작성하지만, 래스터 데이터가 가득 255가 아닌 매우 큰 값을 가지고 있습니다.이 이미지와 AWT에 익숙하지 않아서 BufferedImage를 올바르게 만들지 못한다고 느낍니다. BufferedImage 용 Java API를 참조하려고했지만 많은 행운을 찾지 못했습니다. 어떤 도움을 주시면 감사하겠습니다.
어떻게 Raster 데이터를보고 계십니까? BufferedImage를 디스플레이에 그리거나 픽셀 데이터를 직접 분석하고 있습니까? 코드를 기반으로 이미지가 올바르게 생성 된 것처럼 보이므로 문제가있는 부분에 대한 자세한 정보가 필요합니다. –