1. 程式人生 > >BufferedImage和Image的區別

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