Bitmap四種色彩存儲模式ARGB_8888、ARGB_4444、 RGB_565、 ALPHA_8

一、基礎知識:

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

五、參考文檔

ARGB_8888、ARGB_4444、RGB_565、ALPHA_8深入分析及常見誤區糾正

安卓中圖片色彩的存儲方式及對ARGB_8888、ARGB_4444、RGB_565、ALPHA_8的理解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章