Image BufferImage 和 ImageIcon的区别

来源:互联网 发布:java个人博客建站 编辑:程序博客网 时间:2024/05/16 01:23

Image直属java.awt包,抽象类。


BufferImage为image的直接子类,增加了缓冲功能。BufferedImage生成的图片在内存里有一个图像缓冲区,利用这个缓冲区我们可以很方便的操作这个图片,通常用来做图片修改操作如大小变换、图片变灰、设置图片透明或不透明等。

加载图片到内存:
BufferedImage image = ImageIO.read(new FileInputStream(imgPath));//利用getGraphics()函数获得图形上下文作进一步操作。

//Image image=imageToolkit.getDefaultToolkit().getImage(imgPath);这种方法并未将图片加载到内存,仅仅是引用。


ImageIcon直属javax.swing包 
类定义:
public class ImageIcon extends Object  implements Icon, Serializable, Accessible。


imageicon与image的关系是:imageicon利用image绘制icon。不过,Image一般尺寸较大,不适合用作icon(大图片用作icon时只显示图片的一部分),需要经过处理:
ImageIcon imageIcon = new ImageIcon(new File(path));
Image image = imageIcon.getImage();                         
image = image.getScaledInstance(30,20,Image.SCALE_FAST);
ImageIcon icon = new ImageIcon(image);//利用imageicon的构造函数 public ImageIcon(Image i)

0 0
原创粉丝点击