BufferedImage和Image的区别

序:本人为编程小白,如有错误欢迎各位大佬指正,邮箱:[email protected]

在我的代码中,出现了这样一种情况:

public Image image;

int width = image.getWidth();//此处会报错,提示说要往方法里面提供参数

int width = image.getWidth(null);//按照提示进行修改,得到不会报错的结果


经过自己的摸索,发现和示例的差别主要在

public BufferedImage = image;

int width = image.getWidth();//不会报错

看了一下别人的讲解有了一个大致的了解。Image是一个抽象列,BufferedImage是Image的实现。 Buffered是数据缓冲区域。


1.java.awt.Image图像类是抽象类,提供获得绘图对象、图像缩放、选择图像平滑度等功能,声明如下:

public abstract class Image extends Object

{

    public abstract Graphics getGraphics()           //获得在图像上绘图的Graphics对象

}

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

public class BufferedImage extends Image implements WritableRenderedeImage,Transparency

{

    public BufferedIamge(int width,int height,int imageType)              //imageType指定图像类型

}

BufferedImage bufferedImage = ImageIO.read(new FileInputStream(filePath));             //读取一幅图像到图像缓冲区


你可能感兴趣的:(Java,BufferedImage,Image)