天天看點

【Android開發】圖形圖像處理技術-Bitmap和BitmapFactory類

一、bitmap類

bitmap類代表位圖,是android系統中圖像處理的一個重要類。使用該類,不僅可以擷取圖像檔案資訊,進行圖像剪切、旋轉、縮放等操作,而且還可以指定格式儲存圖像檔案。對于這些操作,都可以通過bitmap類提供的方法來實作。bitmap類提供的常用方法如表所示:

(1)public final int getheight():擷取位圖寬度

(2)public final int getwidth():擷取位圖高度

(3)public static bitmap createbitmap(bitmap src):通過位圖資源建立位圖執行個體

(4)public static bitmap createbitmap(bitmap source, int x, int y, int width, int height):在指定位置建立位圖,可放大縮小位圖  source是位圖資源,(x,y)表示位圖左上角坐标,width表示位圖寬度,height表示位圖高度

(5)public static bitmap createbitmap(bitmap source, int x, int y, int width, int height, matrix m, boolean filter):截取位圖中指定區域中的位圖  source是目标位圖資源,(x,y)表示剪切位圖左上角起始點坐标,width表示目标位圖寬度,height表示目标位圖高度,m表示選擇區域,filter是當其為true且m表示的區域大于前面參數所描述的區域時就填充截取的位圖空白處

(6)public boolean compress(bitmap.compressformat format, int quality, outputstream stream):儲存圖像檔案  format是圖檔儲存格式,quality是圖檔壓縮的品質取值在0-100之間 0表示壓縮的最小尺寸 100表示壓縮的最好品質,stream是圖檔的輸出流

注:對于png格式的圖檔是有損壓縮的,quality壓縮圖檔是沒有效果的,該參數的設定無影響

(7)creatscalebitmap(bitmap source, int x, int y, int width, int height, boolean filter)

用于将源位圖縮放為指定寬度和高度的新的bitmap對象

(8)isrecycled()用于判斷bitmap對象是否被回收

(9)recycle()強制回收bitmap對象

例如,建立一個包括4個像素(每個像素對應一種顔色)的bitmap對象的代碼如下:

bitmap小測試:

res/layout/main.xml:

drawview.java:

運作效果如圖所示

【Android開發】圖形圖像處理技術-Bitmap和BitmapFactory類

二、bitmapfactory類

在android中,還提供了一個bitmap類,該類作為一個工具類,用于從不同的資料源來解析、建立bitmap對象。bitmapfactory類提供的建立bitmap對象的常用方法如表所示:

(1)decodefile(string pathname)用于從給定的路徑所指定的檔案中解析、建立bitmap對象

(2)decodefiledescriptor(filedescriptor fd)用于從filedescriptor對應的檔案中解析、建立bitmap對象

(3)decoderesource(resource res,int id)用于根據給定的資源id,從指定的資源中解析、建立bitmap對象

(4)decodestream(inputstream is)用于從指定的輸入流中解析、建立bitmap對象

例如,要解析sd卡上的圖檔檔案img01.jpg并建立對應的bitmap對象,可以使用下面的代碼:

string path="/sdcard/pictrues/bccd/img01.jpg";

bitmap bm=bitmapfactory.decodefile(path);

要解析drawable資源中儲存的圖檔檔案img02.jpg并建立對應的bitmap對象,可以使用下面的代碼:

bitmap bm=bitmapfactory.decoderesoutce(mainactivity.this,r.drawable.img02.jpg);

這一點在之前寫的"移動的小兔子"的執行個體中用到過。

轉載請注明出處:http://blog.csdn.net/acmman/article/details/45177209

繼續閱讀