用BufferedImage加载图片

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

Image是一个抽象列,BufferedImage是Image的实现。Image和BufferedImage的主要作用就是将一副图片加载到内存中。

Java将一副图片加载到内存中的方法是:

String imgPath = "C://demo.jpg";

BufferedImage image = ImageIO.read(new FileInputStream(imgPath));

可以用该方法可以获得图片的详细信息,例如:

获得图片的宽度:image.getWidth(null);图片只有加载内存中才能对图片进行进一步的处理。

接下来画出加载过的图片

当我们要在哪里绘图时,就先获得该对象的Graphics对象的引用,然后调用drawImage的方法。对于BuffereImage对象也是一样的。先在BuffereImage对象中绘图,然后将BuffereImage对象绘制到Frame中。这样就实现了双缓冲。

在paint方法中具体实现如下:

public void paint(Graphics g) {

super.paint(g);

bi = new BufferedImage(getSize().width, getSize().height, BufferedImage.TYPE_INT_ARGB);

Graphics bg = bi.getGraphics(); //在这里获得了bi的Graphics的引用

bg.drawImage(要显示的图片,.....);//调用bg的drawImage方法。

if (fi) {

g = img.getGraphics();

g.drawImage(bi, 50, 50, 40, 40, this);

}

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容