一、基礎知識:
ARGB:指的是一種色彩模式,裏面A代表Alpha,R表示red,G表示green,B表示blue。
自然界中所有的可見色都是由紅、綠、藍組成的,所以紅、綠、藍又稱爲三原色,每個原色都存儲着所表示顏色的信息值
A->alpha(透明度),R->red(紅色),G->green(綠色),B->blue(藍色)
二、四種模式的區別:
四種類型爲bitmap在內存中存在的四種色彩的存儲模式,他們本質區別體現在每種模式下的bitmap內部的每個像素點,在內存中的大小和組成成分的區別。
三、深入分析(每種模式下的一個像素的具體存儲大小)
- 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