序:本人为编程小白,如有错误欢迎各位大佬指正,邮箱:1204912665@qq.com
在我的代码中,出现了这样一种情况:
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)); //读取一幅图像到图像缓冲区