그레이 스케일 값이 포함 된 .csv 파일을 BufferedImage를 사용하는 이미지로 변환하려고합니다. 처음에는 csv가 pixArray[]
으로 읽혀지고 모든 값은 두 배가됩니다. 그레이 스케일 값을 .csv에서 BufferedImage로 변환
BufferedImage image = new BufferedImage(width,height,BufferedImage.
TYPE_BYTE_GRAY);
for(int x = 0; x < width; x++)
{
for(int y = 0; y < height; y++)
{
image.setRGB(x, y, (int)Math.round(pixArray[y]));
}
}
File file_out = new File("output.png");
try {
ImageIO.write(image, "png", file_out);
} catch (IOException e) {
e.printStackTrace();
}
으로 100x100 픽셀 출력 이미지를 만들 BufferedImage를 사용하려고 시도하고 있지만 내가 출력으로 모두는 100 × 100 검은 사각형이다.
TYPE_BYTE_GRAY
에 대한 대안과 outout에 대한 png 형식을 시도했지만이 오류를 생성하는 것을 찾을 수 없습니다.
입력 데이터의 샘플을 표시하십시오. 값이'0.0 <= x <= 1'이면'Math.round()'는 모든 것을 0으로 잘라내서 검은 색으로 만듭니다. –
값은 모두 0 <= x <= 255 초기에는 예 :'111.8884 \t 112.2339 \t 113.4165 '이므로 캐스팅됩니다. 반올림을 제거하고 'int'캐스팅을 유지했지만 여전히 모든 검정색을 출력으로 받았습니다. – gorringe
다음과 같으면 안됩니다.'int g = (int) Math.round (pixArray [y]); image.setRGB (x, y, new Color (g, g, g) .getRGB()); '알파를 픽셀 값으로 설정하고 색상 구성 요소는 모두 0으로 설정한다고 생각합니다. –