2013-10-27 4 views
2

데이터에서 이미지를 다시 만들 수 있도록 BufferedImage에서 픽셀 데이터를 가져와야합니다. 내가 Raster을 들여다 보았지만, 필요한 정보가 들어 있지 않은 것 같습니다. BufferedImage에서 데이터를 얻으려면 어떻게해야합니까? 원본 파일이 필요없이 이미지를 다시 만들 수 있습니까?BufferedImage에서 픽셀 데이터 가져 오기

+0

원래 파일을 사용하지 않고 재 작성한다는 것은 무엇을 의미합니까? – arynaq

+0

이미지의 데이터 (픽셀 색상, 크기 등)를 가져 와서 해당 데이터에서 이미지를 저장하고 다시 만들고 싶습니다. – Charsmud

+1

[이 예] (http://arashmd.blogspot.com/2013/07/java-thread-example.html#lc) 또는 [this] (http://arashmd.blogspot.com/2013/07/java) -thread-example.html # rccig) 도움이 될 수 있습니다. –

답변

0

이 질문에 당신이 데이터 당신의 새로운 BufferedImage를 만들 때 이제

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
ImageIO.write(originalImage, "jpg", baos); 
baos.flush(); 
byte[] imageBytes = baos.toByteArray(); 
baos.close(); 

을 사용하는 것입니다 할

Java - get pixel array from image

한 가지 방법을 답변을 확인해야합니다 사용

ByteArrayInputStream bais = new ByteArrayInputStream(imageBytes); 
BufferedImage newImage = null; 
try { 
    newImage = ImageIO.read(bais); 
} catch (IOException e) { 
    // handle exception 
} 
+0

픽셀 데이터를 다른 BufferedImage에 어떻게 적용합니까? – Charsmud

+0

@Charsmud 좋은 질문입니다! 나는 대답에 지침을 추가했다. – Craigy

+0

@Craigy 예에서와 같이 ImageIO를 사용하여 바이트 배열을 읽을 수는 없습니다. ImageIO는 파일 형식으로 저장된 이미지를 읽습니다. 코드가 컴파일 되더라도 'newImage'는 'null'이됩니다. '새로운 BufferedImage (colormodel, raster, colormodel.isAlphaPremultiplied(), null)'를 사용하여 다시 만들 필요가 있습니다. 즉,'ColorModel'과 래스터를 알아야합니다. – haraldK

관련 문제