25

How can I convert a BufferedImage to an ImageIcon?

I can not find any documentation on this.

mKorbel
  • 109,525
  • 20
  • 134
  • 319
Get Off My Lawn
  • 34,175
  • 38
  • 176
  • 338

5 Answers5

70

Use constructor: ImageIcon(Image image), BufferedImage extends Image.

Andrew Thompson
  • 168,117
  • 40
  • 217
  • 433
Nemanja
  • 1,161
  • 11
  • 13
23

BufferedImage extends Image, so it's simply:

new ImageIcon(myBufferedImage);
Abob
  • 751
  • 5
  • 27
schippi
  • 1,034
  • 5
  • 15
5
File img = new File("C:\\..\\image.jpg");
BufferedImage bufferedImage = ImageIO.read(img);
ImageIcon imageIcon = new ImageIcon(bufferedImage);
Isaac
  • 2,701
  • 4
  • 30
  • 47
2
your bufferimage;
JLabel photo = new JLabel("Photo");
photo.setIcon(new ImageIcon(bufferimage));
NikhilK
  • 181
  • 2
  • 12
0

here is a simple converter:

//Your icon
private ImageIcon icon;
//Your image
private BufferedImage image; 

 public void bufferImageTocon(){
     File file = new File("test.jpg");
     try {
         this.image = ImageIO.read(file);
     } catch (IOException ex) {
         ex.printStackTrace();
     } 

     icon = new ImageIcon(image); 
 }

Use just the constructor to make a new icon, setting the buffered image as a parameter.

istovatis
  • 1,408
  • 14
  • 27