2013-02-24 4 views
9

ImageIconBufferedImage으로 변환하려고 시도했습니다. 그리고 운이 없었습니다.ImageIcon을 BufferedImage로 변환

방대한 양의 BufferedImage 작업을 위해 BufferedImage로 변환해야하는 기존 ImageIcon이 있습니다.

나는 몇 가지 방법을 발견했지만, 모두 엄청나게 CPU 집약적입니다.

답변

29

문제의 새로운 기능 :

BufferedImage bi = new BufferedImage(
    icon.getIconWidth(), 
    icon.getIconHeight(), 
    BufferedImage.TYPE_INT_RGB); 
Graphics g = bi.createGraphics(); 
// paint the Icon to the BufferedImage. 
icon.paintIcon(null, g, 0,0); 
g.dispose(); 
+1

매우 도움이 대단히 감사합니다, 나는 이전에이 방법을 건너 듯했지만, 빨리 그것 때문에 심하게 수행하는 것이 내 immiediet 가정에 격추하지만 이후했다 그것을 당신의 방법으로 시험해보십시오, 그것은 모두 잘 작동하는 것 같습니다. – Caelum

+1

아이콘에 투명 픽셀이있는 경우'BufferedImage.TYPE_INT_ARGB'. – Matthieu

-2

내가 Scalr이라는 것을 시도는,

Scalr.resize((BufferedImage) ImageIO.read(file), Method.SPEED, 250, OP_ANTIALIAS, OP_BRIGHTER);

건배 아래의 코드를 볼 수 있습니다.

+2

실제로 질문을 읽었습니까? –

8

ImageIcon, ImageBufferedImage를 참조하십시오

ImageIcon yourImage; 
Image image = yourImage.getImage(); 
BufferedImage buffered = (BufferedImage) image; 
+2

ImageIcon에 BufferedImage가 포함되어 있으면 이것을 사용하고 그렇지 않으면 Werner의 대답을 사용하십시오. – aditsu

+0

Windows에서는 작동하지만 Linux에서는 작동하지 않습니다 (Ubuntu에서 시험 사용). – Matthieu

관련 문제