2013-02-24 21 views
9

ImageIcon'u BufferedImage'a dönüştürmeye çalışıyorum ... Ve şansım olmadı.Bir ImageIcon'ı bir BufferedImage'ye dönüştürme

Varolan bir ImageIcon'um var, var olan BufferedImage işlemlerinin büyük bir miktarı için Tamponlu Görüntüye dönüştürülmesi gerekiyor.

Birkaç yol buldum, ancak hepsi yoğun CPU yoğun.

cevap

29

nesi var:

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

Çok yararlı, çok teşekkür ederim, ben daha önce bu yöntemle genelinde geldi, ama çabuk nedeniyle kötü bir şekilde gerçekleştirmek olacağını benim immiediet varsayıma düşürdü, ama sonra sahada yolunu denemek, her şey iyi çalışıyor gibi görünüyor. Simgede saydam pikseller varsa – Caelum

+1

'BufferedImage.TYPE_INT_ARGB'. – Matthieu

-2

Ben Scalr denilen şey denedim,

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

Şerefe altında kodunu görüntülemek.

+2

Soruyu gerçekten okudun mu? –

8

ImageIcon, Image ve BufferedImage bakınız:

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

ImageIcon bir BufferedImage veya başka bir şekilde Werner yanıtı içeriyorsa bunu kullanın. – aditsu

+0

Bu, Windows üzerinde çalışıyor ancak Linux'ta çalışmıyor (Ubuntu'da denendi). – Matthieu