我有一个背景文件,我希望在目前40mb的iphone游戏中使用。它是一个.png文件,我想将其压缩到尽可能小的尺寸而不会损失太多的质量并且不会丢失alpha通道。我只是通过将其文件类型更改为.jpg文件,成功更改了类似大文件的文件大小。但是,此图像没有任何透明度,据我所知,您不能将.png更改为.jpg而不会失去透明度。也许我错了(如果我是的话,请纠正我。)如果有办法压缩这个.png文件,请向我解释它是如何完成的。另外,请注意它是一个非常大的文件,如果可能的话,最好在5小时或更短的时间范围内压缩。谢谢!
答案 0 :(得分:4)
你是如何构建游戏的?如果您直接使用OpenGL,并且如果您对它提供的压缩感到满意,那么PVR对于更小的真正快速图像来说是一种很棒的格式。
正如keegan3d所说,Xcode使用PNGCrush重新压缩PNG图像。它改变了字节顺序并预测了alpha。本文解释了会发生什么:iPhone "Optimized" PNGs
如果您启用了Xcode的PNG压缩功能,那么使用PNG压缩工具不会带来任何好处:PNG compression and iOS apps
如果您只想为一个图片禁用Xcode压缩(这样您就可以使用备用压缩工具),我相信您可以将文件类型从image.png
更改为file
,如下所述在这里:How can I skip compressing one PNG?
而且......对RAM的使用要小心一点。 JPEG和PNG都将解压缩到相同的大小(假设它们没有alpha)。 40MB是相当大的。你还有其他绘制背景的方法吗?我已经开发了一个基于位图的位图2048 x 2048游戏区域的游戏。我们使用PVR和瓷砖。 PVR图像比PNG使用更少的RAM,并且更快。
答案 1 :(得分:2)
Xcode压缩png,你应该看一下构建应用程序中图像的实际大小。可以使用ImageOptim比Xcode更能压缩图像,但它们在屏幕上显示的速度稍慢,这可能不会成为背景图像的问题。
答案 2 :(得分:2)
my benchmark最小尺寸,加载速度最快的PNG图像是使用ImageAlpha / pngquant创建的PNG8 + alpha。
如果你的背景基本上是平的或单色的(没有太多的模糊/渐变),那么它看起来就像PNG8 + alpha一样好。
您可以通过在smart way中对它们进行分色来提高PNG24 + alpha图像的可压缩性。
然而,40MB的PNG图像仍然很庞大。如果它导致你的记忆问题,我不会感到惊讶。考虑将其拆分为更小的图块。