【问题标题】:PNG Does The transparent pixel take up memory?PNG透明像素是否占用内存?
【发布时间】:2012-01-23 04:53:43
【问题描述】:

我正在为 Android 制作游戏,我正在使用透明 PNG。但是透明部分占用内存大吗?

例如,如果我有一个透明的 512*512 的 PNG,那么它占用的 RAM 和或 ROM 是否与 256*246 占用相同的数量??

//西蒙

【问题讨论】:

  • 你能不能只创建一个,然后比较它们的大小?
  • 意味着 RAM 比磁盘上的 kb 多

标签: android png transparency transparent


【解决方案1】:

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

如果您的像素具有透明度(一个 alpha 通道),您很可能使用 ARGB8888 作为图像格式。这样,每个像素在内存中占用 4 个字节。这意味着 512x512 像素的图像采用 (512*512*4) bytes = 1 MB 和较小的 (256*246*4) bytes = 246 kB

像素是否透明(不可见) 无关紧要。只有分辨率和内部格式是相关的。

【讨论】:

  • @AndroidXTr3meN 是的,在这种情况下,内存 = RAM。
【解决方案2】:

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

  • 512x512 像素的透明图像 大约 1048 kB 内存
  • 没有透明度它将是 786kB
  • 没有RGB_888色彩模式,最接近的是RGB_565, 将是 524kB

【讨论】:

    猜你喜欢
    • 2012-11-14
    • 1970-01-01
    • 2021-07-12
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多