我正在为Android制作游戏而我正在使用透明的PNG。但透明部分是否会占用大量内存?
例如,如果我的512*512
PNG是透明的,那么RAM
和ROM
与256*246
相同吗? ?
//西蒙
答案 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个字节。