Android中Bitmap大小計算

2021-08-31 07:09:02 字數 1088 閱讀 6503

bitmap.config是bitmap中的乙個內部類,在bitmap類裡createbitmap(intwidth, int height, bitmap.config config)方法裡會用到,開啟個這個類一看

public static final bitmap.config alpha_8  

public static final bitmap.config argb_4444 

public static final bitmap.config argb_8888 

public static final bitmap.config rgb_565  

argb_8888、argb_4444、rgb_565、alpha_8

四種型別為bitmap在記憶體中存在的四種色彩的儲存模式,他們本質區別體現在每種模式下的bitmap內部的每個畫素點,在記憶體中的大小和組成成分的區別。

a->alpha(透明度),r->red(紅色),g->green(綠色),b->blue(藍色)

每種模式下的乙個畫素的具體儲存大小: 

argb_8888:a->8bit->乙個位元組,r->8bit->乙個位元組,g->8bit->乙個位元組,b->8bit->乙個位元組,即8888,乙個畫素總共佔四個位元組,8+8+8+8=32bit=4byte

argb_4444:a->4bit->半個位元組,r->4bit->半個位元組,g->4bit->半個位元組,b->4bit->半個位元組,即4444,乙個畫素總共佔兩個位元組,4+4+4+4=16bit=2byte

rgb_565:r->5bit->半個位元組,g->6bit->半個位元組,b->5bit->半個位元組,即565,乙個畫素總共佔兩個位元組,5+6+5=16bit=2byte

alpha_8:a->8bit->乙個位元組,即8,乙個畫素總共佔乙個位元組,8=8bit=1byte

計算大小方式: 

一張bitmap的大小 = 有多少個畫素點 * 每個畫素點記憶體中占用的大小 = 長 * 寬 * 3中講的各種模式下對應的畫素點占用的位元位

例子:計算一張長寬為1000/1000,argb_8888格式的一張bitmap的大小: 

1000 * 1000 * 4byte = 4000kb = 4m

android中bitmap用法補充

android學習之位圖bitmap bitmap代表一張位圖,副檔名可以是.bmp或者.dib。點陣圖是windows標準格式圖形檔案,它將影象定義為由點 畫素 組成,每個點可以由多種色彩表示,包括2 4 8 16 24和32位色彩。例如,一幅1024 768解析度的32位真彩,其所佔儲存位元組數...

Android中Bitmap的獲取方法

獲取bitmap的幾種方式總結 從獲取方式分 1 以檔案流的方式 假設在sdcard下有 test.png fileinputstream fis new fileinputstream sdcard test.png bitmap bitmap bitmapfactory.decodestream...

android記憶體優化 Bitmap

眾說周知在android開發中bitmap是吃記憶體的大戶,所以談到android記憶體優化首先得對bitmap進行優化 優化方法主要有 1 對於無用的bitmap要及時進行 釋放bitmap的方法 if bitmap null bitmap.isrecycled bitmap.recycle 方法...