PNG是否透明像素占用内存?

时间:2011-12-18 21:20:57

标签: android png transparency transparent

我正在为Android制作游戏而我正在使用透明的PNG。但透明部分是否会占用大量内存?

例如,如果我的512*512 PNG是透明的,那么RAMROM256*246相同吗? ?

//西蒙

2 个答案:

答案 0 :(得分:7)

在内存中未压缩时,大小完全取决于图片分辨率。

如果您的像素具有透明度(Alpha通道),则最有可能使用ARGB8888作为图像格式。这样每个像素在内存中占用4个字节。这意味着512x512像素图像需要(512*512*4) bytes = 1 MB,而(256*246*4) bytes = 246 kB上的图像更小。

如果像素是透明的(不可见)或不重要。只有分辨率和内部格式是相关的。

答案 1 :(得分:4)

当您的图像加载到内存中时,它将是一个位图,无论光盘上的原始格式是什么,所以它实际上取决于您加载图像的Config
如果您将图像加载为ARGB_8888,则图像每个像素的每个颜色分量将占用一个字节,即 alpha(透明度)将占据总图像内存的四分之一每个像素将是4个字节。

  • 512x512像素,透明度的图片需要 关于 1048 kB内存
  • 没有透明度 786kB
  • 没有任何RGB_888色模,最接近 RGB_565 ,其中 会 524kB