2012-04-23 83 views
3

我有一個背景文件,我希望在目前40MB的iPhone遊戲中使用。這是一個.png文件,我想將它壓縮到可能的最小尺寸,而不會丟失很多質量並且不會丟失Alpha通道。我已經成功改變了一個類似大文件的文件大小,只需將其文件類型更改爲.jpg文件即可。然而,這張圖片沒有透明度,據我所知,你不能將.png改成.jpg而不會失去透明度。也許我錯了(如果我有問題,請糾正我)。如果有辦法壓縮這個.png文件,請向我解釋它是如何完成的。另外,請注意,這是一個相當大的文件,如果可能,最好在5小時或更短的時間範圍內進行壓縮。謝謝!壓縮在iPhone遊戲中使用的巨大PNG文件

+0

嘗試使用此應用程序 - http://www.irfanview.com/您可以在保存時設置壓縮級別。它也有批量轉換模式 - 所以你可以通過點擊2-3次重新壓縮整個圖像。 – k06a 2012-04-23 07:21:36

+0

你爲什麼不試試[PNG Squeezer](http://itunes.apple.com/us/app/png-squeezer/id467969231?mt=12)? – 2012-04-23 07:25:54

+0

解壓縮PNG時,它佔用的內存至少與其壓縮形式在磁盤上的容量相同 - 可能更多。如果你有RGB和alpha,在解壓縮後每個像素需要4個字節。之前的iOS設備將嘗試加載一個這麼大的圖像,但內存不足。你的背景圖像可以分成獨立的瓷磚嗎? – Dondragmer 2012-04-23 07:29:58

回答

2

Xcode壓縮PNG,你應該看看圖像實際上在建立的應用程序內有多大。有可能壓縮圖像超過Xcode與ImageOptim,但它們稍慢於在屏幕上顯示,這可能不會成爲您的背景圖像的問題。

+0

謝謝,我沒有意識到Xcode已經壓縮了它們。這有助於很多。 – Fitzy 2012-04-23 09:03:41

+0

是的,它們是經過優化的,可以加快GPU的加載速度。 ImageOptim可以對它們進行更多的壓縮,但在我的測試中,將它們放在GPU上的速度較慢,但​​只有在播放圖像序列時纔會明顯。 – keegan3d 2012-04-23 19:25:20

4

你是如何構建遊戲的?如果你直接使用OpenGL,並且如果你對它提供的壓縮感到滿意,PVR是一個非常棒的格式,它的尺寸要小得多,並且真的是的快速圖像。

PVRTC on Wikipedia

正如keegan3d說,重新壓縮的Xcode PNG圖像,使用PNGCrush。它改變了字節順序並預處理了alpha。這篇文章解釋發生了什麼:iPhone "Optimized" PNGs

如果你離開Xcode的PNG啓用壓縮,那麼你將不會看到使用PNG壓縮工具的任何好處:PNG compression and iOS apps

如果您想停用Xcode的壓縮一個圖像只有(這樣你就可以使用備用壓縮工具),我相信你可以將文件類型更改從image.pngfile,如下解釋:How can I skip compressing one PNG?

而且......小心一點與RAM的使用。 JPEG和PNG都將解壓縮到相同的大小(假設它們沒有alpha)。 40MB是相當大的。你有其他方式繪製背景嗎?我已經開發了一個基於位圖的2048 x 2048位圖的遊戲。我們使用PVR和瓷磚。 PVR圖像使用的內存少於PNG,速度更快。

2

my benchmark最小的尺寸和最快的加載PNG圖像是用ImageAlpha/pngquant創建的PNG8 + alpha。

如果您的背景基本上是平坦或單色(不會太多模糊/漸變),那麼它會看起來很像PNG8 + alpha。

您可以通過在smart way中將它們劃分爲兩部分來提高PNG24 + alpha圖像的可壓縮性。

但是,40MB的PNG圖像仍然很大。如果它引起你的記憶問題,我不會感到驚訝。考慮將其分成更小的區塊。