2014-06-19 46 views
0

我有一個26,4KB的圖像。它由框架波紋管加載。爲什麼Flex的性能分析工具顯示此幀實例使用1388KB。圖像內存使用

public class Frame extends Group 
    { 
     public function Frame(source:Object)// image with 26,4K 
     {   
      var image:BitmapImage; 
      image = new BitmapImage(); 
      image.smooth = true; 
      image.source = source; 
      this.addElement(image);   
     } 
    } 

回答

1

BitmapImages基本上含有確定像素顏色的字節的未壓縮矩形陣列。

我想你的輸入文件是JPG/JPEG,PNG,GIF? (基本上是壓縮的)。

想象一下圖像100px by 100px, 32bit RGBA colors(紅/綠/藍/阿爾法)。

BitmapImage的內存要求將在100 * 100 * (32/8)(X * Y * bytesPerPixel)= 40K字節的範圍內。但是,相同的圖像作爲JPG可能會壓縮到3K或其他東西。 (或GIFPNG等)

它必須作爲位圖存儲在某個點,以便它可以複製(位移)到視頻內存以供顯示。也許flex有替代圖像存儲類型,你可以使用/嘗試?

+0

我的圖片有1024x534。水平和垂直分辨率爲96dpi和24 Dit深度。怎麼樣的s:圖像是最好顯示圖像? – Dave

+0

{咧嘴笑}不要模糊!嘗試一下!根據我的經驗,除非你修補內存不足的嵌入式設備,否則它並不是什麼大問題。玩東西,嘗試點子,用一個好的SCM(git!),你可以很容易地回滾,如果某些東西不能像你想要的那樣工作的話。 – lornix