Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将图像图标转换为BuffereImage_Java_Bufferedimage_Imageicon - Fatal编程技术网

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;