AS3的BitmapData內存佔用

AS3的位圖類BitmapData,在內存中以32位存儲。

        圖片的表現形式一般爲四個通道的混合,即BGRA。每個顏色通道(R、G、B)存儲單獨的顏色值,Alpha通道負責存儲透明度信息。

        每個通道的信息以二進制存儲,一個位數(bit)的二進制可以表現兩種狀態,即0、1(二值圖像)。那麼8個位數可以表現2^8 = 256種狀態,即256個色階。四個通道是4×8 = 32(bit)。

        內存中一個字節(Byte)佔用8位二進制,那麼一個像素佔用32/8 = 4(Byte)。

        那麼AS3的BitmapData在內存中佔用的空間是:像素數×4。

        比如,一張1024×1024的圖片佔用的空間爲:1024×1024×4 = 1048576(Byte)= 4M。


        目前爲止(2012/7/6),AS3的機制只支持32位的圖像,也就是說所有編碼格式的圖像經過AS3的解碼以後全部是32位,Adobe未提供其他位數的API。


比較以下佔用大小:

1.bitmapData
_maskBitMapData = new BitmapData(1920,1024,true,0x66666666);
_mask = new Bitmap(_maskBitMapData);

2.shape
_mask = new Shape();
_mask.graphics.beginFill(0x666666, 0.6);
_mask.graphics.drawRect(0, 0, 1920, 1024);
_mask.graphics.endFill();


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