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)); //讀取一幅影象到影象緩衝區