2014-06-19 19 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