Java 将图像图标转换为BuffereImage
我一直在尝试将Java 将图像图标转换为BuffereImage,java,bufferedimage,imageicon,Java,Bufferedimage,Imageicon,我一直在尝试将图像图标转换为缓冲图像。。。而且我运气不好 我有一个预先存在的ImageIcon,需要将其转换为缓冲图像,以便进行大量的BuffereImage操作 我已经找到了一些方法,但它们都是CPU密集型的。有什么问题: BufferedImage bi = new BufferedImage( icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_RGB); Graphics g = bi
图像图标
转换为缓冲图像
。。。而且我运气不好
我有一个预先存在的ImageIcon,需要将其转换为缓冲图像,以便进行大量的BuffereImage操作
我已经找到了一些方法,但它们都是CPU密集型的。有什么问题:
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();
我尝试了一种叫做Scalr的方法,查看下面的代码
scaler.resize((BuffereImage)ImageIO.read(文件),
方法。速度,250,OP_抗锯齿,OP_更亮)代码>
干杯。请参阅,以及:
如果ImageIcon包含BuffereImage,或Werner的答案,则使用此方法。这在Windows上有效,但在Linux上不起作用(在Ubuntu上试用)。非常感谢,我以前使用过此方法,但由于我的immiediet假设它会执行得很差,所以很快将其删除,但在按照您的方式尝试后,这一切似乎都很好。buffereImage。如果图标中有透明像素,请键入\u INT\u ARGB
。不回答OP的问题。您只是读取一个文件,而不是将ImageIcon对象转换为BuffereImage对象
ImageIcon yourImage;
Image image = yourImage.getImage();
BufferedImage buffered = (BufferedImage) image;