将字节数组转换为图标

Convert Byte array to an Icon

我有一个字节数组,它是对名为 "getFoto()" 的方法执行 get 操作的结果。现在我的问题是如何将这个字节数组转换为图像,将这个图像设置为特定的 JLabel。

       InputStream myInputStream = new ByteArrayInputStream(t.getFoto()); 
         BufferedImage someImage;
        try {
            someImage = ImageIO.read(myInputStream);
            Icon icon = new ImageIcon(someImage);
            portada.setIcon(icon);
        } catch (IOException ex) {
            Logger.getLogger(VeryModificarTrailers.class.getName()).log(Level.SEVERE, null, ex);
        }
        }

portada.setIcon((Icon) Imagen; is not working

BufferedImage 不是 Icon,因此转换永远不会神奇地将其转换为 Icon。相反,您需要先从图像创建一个 ImageIcon:

BufferedImage someImage = ImageIO.read(something);
Icon icon = new ImageIcon(someImage);
someJLabel.setIcon(icon);

您也可以将字节数组直接传递给 ImageIcon 构造函数,因为这也可以工作