将ImageIcon转换为BufferedImage

Cae*_*lum 10 java bufferedimage imageicon

我一直试图将一个转换ImageIconBufferedImage...而且我没有运气.

我有一个预先存在的ImageIcon,需要转换为缓冲图像,用于存在的大量BufferedImage操作.

我找到了几种方法,但所有方法都是CPU密集型的.

Wer*_*rås 33

有什么不对:

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();
Run Code Online (Sandbox Code Playgroud)

  • 如果图标中有透明像素,则为"BufferedImage.TYPE_INT_ARGB". (2认同)

Mar*_*oma 8

请参见ImageIcon,ImageBufferedImage:

ImageIcon yourImage;
Image image = yourImage.getImage();
BufferedImage buffered = (BufferedImage) image;
Run Code Online (Sandbox Code Playgroud)

  • 如果ImageIcon包含BufferedImage,则使用此方法,否则使用Werner的答案. (2认同)