bitmap代表一張位圖,副檔名可以是.bmp或者.dib。點陣圖是windows標準格式圖形檔案,它將影象定義為由點(畫素)組成,每個點可以由多種色彩表示,包括2、4、8、16、24和32位色彩。例如,一幅1024×768解析度的32位真彩,其所佔儲存位元組數為:1024×768×32/8=3072kb
位**件影象效果好,但是非壓縮格式的,需要占用較大儲存空間,不利於在網路上傳送。jpg格式則恰好彌補了位**件這個缺點。
在android系統當中,bitmap是影象處理最重要的類之一。用它可以獲取影象檔案資訊,進行影象剪下、旋轉、縮放等操作,並可以指定格式儲存影象檔案。
一、bitmap的生成
1.1 bitmapfactory decode出bitmap
bitmap實現在android.graphics包中。但是bitmap類的建構函式是私有的,外面並不能例項化,只能是通過jni例項化。這必然是 某個輔助類提供了建立bitmap的介面,而這個類的實現通過jni介面來例項化bitmap的,這個類就是bitmapfactory。
圖一、bitmapfactory主要方法及options選項
利用bitmapfactory可以從乙個指定檔案中,利用decodefile()解出bitmap;也可以定義的資源中,利用decoderesource()解出bitmap。
從資源檔案中獲取:
bitmap rawbitmap = bitmapfactory.decoderesource(getresource(),r.drawable.image1);
從sd卡中得到:
將bitmap和drawable相互轉換
drawable newbitmapdrawable = new bitmapdrawable(bitmap);
===//如果要獲取bitmapdrawable中所包裝的bitmap物件,可以用getbitmap()方法;
bitmap bitmap = newbitmapdrawable.getbitmap();
**bitmap所占用的記憶體:
if(!bitmap.isrecycled())
bitmap.recycle();
在使用方法decodefile()/decoderesource()時,都可以指定乙個bitmapfacotry.options。
利用options的下列屬性,可以指定decode的選項:
二、利用bitmap和matrix實現影象變換
bitmap可以和matrix結合實現影象的剪下、旋轉、縮放等操作。
圖三、bitmap方法
用源bitmap通過變換生成新的bitmap的方法:
public static bitmap createbitmap(bitmap source, int x, int y, intwidth, int height,第乙個方法是最終的實現,後兩種只是對第一種方法的封裝。matrix m, boolean filter)
public static bitmap createbitmap(bitmap source, int x, int y, intwidth, int height)
public static bitmap createscaledbitmap(bitmap src, int dstwidth,
int dstheight,boolean filter)
第二個方法可以從源bitmap中指定區域(x,y, width, height)中挖出一塊來實現
剪下;第三個方法可以把源bitmap
縮放為dstwidth x dstheight的bitmap。
設定matrix的rotate(通過setrotate())或者scale(通過setscale()),傳入第乙個方法,可實現旋轉或縮放。
圖四、bitmap實現旋轉
**********=
將高寬和的大小kb壓縮
public static bitmap zoomimg(bitmap bm, int newwidth ,int newheight)
**********==
設定的圓角,返回設定後的bitmap
public bitmap toroundcorner(bitmap bitmap, int pixels)
android bitmap記憶體處理
程式中一次性載入多張,而且還要適應螢幕,這就造成記憶體緊張,程序會出現oom,特別是現在的手機解析度高達1920 1024,一張占用記憶體高達8m,首先要獲取原的高寬 減少記憶體 bitmapfactory.options options new bitmapfactory.options opti...
Android bitmap用法介紹
bitmap是android中重要的影象處理工具類,通過bitmap可以對影象進行剪下 旋轉 縮放等操作,同時還可以指定格式和壓縮質量儲存影象檔案。一 拿到乙個bitmap物件 檢視原始碼我們知道,bitmap被final修飾,因此不可以通過new來獲得乙個bitmap的例項,獲得乙個bitmap物...
Android bitmap上面寫字
方法1 bitmap bitmap public bitmap drawtexttobitmap context mcontext,bitmap bit,string mtext,string str3 bitmap bitmap copy bitmapconfig,true canvas canv...