我有一个关于png-8 vs png-24用法与内置"image compressor"内置Xcode的问题。
转换为png-8的一些图像就像这样保存得很好,因为png-24版本之间的差异不容易被注意到。但有些图像必须存储为png-24,以便质量保持在高水平......相同的图像在保存时比png-8小3倍,所以我猜在使用png时内存消耗会有一些好处8对比png-24。但我不确定的是:
我知道只是让Xcode做它想做的事情可能绰绰有余,特别是对于有足够内存和CPU功率的新设备,但我很好奇发生了什么“引擎盖下”并且浪费时间在Photoshop中进行优化?
答案 0 :(得分:4)
- iOS"喜欢"更多png-24?
iOS肯定喜欢它的图像接近自己的硬件格式(见下文)。但是,它可能不会推测某种格式,或者随意转换图像。这意味着默认的后处理可以将图像从调色(8位)转换为真彩色图像,如果应用程序期望其图像包含调色板,那么这将是破坏性。有很多好的&适当使用调色图像。
- 在iOS中使用png-8而不是png-24有什么问题,首选是什么?
颜色深度 - 对于某些类型的图像(但不是全部),颜色越高越好。大小 - 越小越好(并且决定何时,你自己)。除了Sangony状态之外,PNG规范足够慷慨,即使在索引模式下也允许多于一位的alpha。也就是说,通常的RGB调色板也可以是RGBA,包括alpha。我不知道任何"问题"有更常见的PNG格式,甚至是不常见的格式。
- 当Xcode中的COMPRESS_PNG_FILES设置为YES时,在PS(或某些程序,如TexturePacker)中优化图像有什么好处,因为我认为Xcode会以某种方式覆盖我们在PS中完成的优化?
Photoshop并非非常擅长优化PNG,但它再次肯定不是最差的。 pngcrush
(原文)专门用于尝试从PNG中挤出最后一个字节 - 但是在最高设置下,它可能需要一段时间才能完成。我可能在不知不觉中使用了Apple的修改版pngcrush
,因为它是" on"默认情况下;编译代码时我没有发现如此大的延迟,因此Apple的默认设置可能不是最高的可能的设置。这表明手动运行pngcrush
可能值得花时间,在这种情况下,您绝对不希望XCode撤消它。
- 优化图像时Xcode实际上做了什么?
最明显的优化'是:将存储顺序从RGB切换到BGR,并通过将其与颜色通道预乘来丢弃alpha通道。另请参阅my earlier answer。
据推测,存储顺序可能是默认目标设备(iPad,iPhone)的最佳选择。预乘alpha是一种常用的优化方法,因为它需要较少的计算才能实时显示图像。 (它也有一些缺点。)
如果没有任何精确的测量结果,人们只能推测这些优化在现代硬件上是否真正重要。所有内部转换都显示在'格式很可能会尽快缓存。
答案 1 :(得分:2)
答案 2 :(得分:1)
除了PNG8和PNG 24之间的可用颜色外,主要区别在于透明度方面。
PNG8 alpha有时会出现锯齿状,而PNG24则更加平滑。如果您不关心alpha并且图像看起来足够好,那么PNG8可能就是您的选择。
PNG8 Alpha
PNG24 Alpha