2013-10-05 3 views
3

여기 내 코드입니다 :BufferedImage의 래스터 데이터의 BufferedImage하는

byte[] pixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData(); 
BufferedImage newImage = new BufferedImage(image.getWidth(), image.getHeight(), image.getType()); 
WritableRaster raster = newImage.getRaster(); 
raster.setDataElements(0, 0, image.getWidth(), image.getHeight(), pixels); 
newImage.setData(raster); 
ImageIO.write(newImage, "jpg", new File("newimage.jpg")); 

이 코드는 바로 내 모습과 내가하고 싶은 일을해야한다. 이미지의 픽셀 데이터를 가져 와서 원본 이미지와 완전히 같아야하는 새 이미지를 만드는 데 사용합니다. 그러나 저장되는 이미지의 색이 원본과 다릅니다. 왜?

결국 픽셀 바이트를 조작해야하지만 지금은 왜 다른 이미지를 제공하는지 알 수 없습니다.

+0

귀하의 (바람직하게 작은) 원본 입출력 이미지에 대한 링크를 게시 할 수 있습니까? – haraldK

답변

2

이 게시물이 도움 java buffered image created with red mask 대신 툴킷을 사용하기 위해 최선 있도록 ImageIO에서와 일반적인 문제가 될 것으로 보인다

될 수있다.

+0

관련이있을 수 있습니다. 또한 완전히 무관 할 수도 있습니다. 어쨌든 나는 툴킷을 사용하는 것이 좋습니다. 특정 버그는 이후 JRE에서 수정되었습니다. – haraldK