序:本人為程式設計小白,如有錯誤歡迎各位大佬指正,郵箱:[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)); //讀取一幅圖像到圖像緩沖區