2010-07-26 34 views
2

我正在使用大量圖形文件的項目。我們有大約500個60x60 PNG文件組成幾個不同的動畫(大約80個),佔用大約2MB的空間。在代碼中,我只是逐一繪製每個幀以呈現動畫。舉例來說,其中一個動畫由3個幀組成,每個幀大小約爲4 KB。我的問題是,我們能否做些什麼來減小這些圖像的大小。結合動畫幀來節省空間

我們非常依賴圖像的透明度,所以轉換成JPG是不可能的。轉換爲GIF是一種選擇,但渲染圖像的質量太低,所以我認爲我們不能使用它。

PNGCrush爲我們節省了大約20 KB的所有圖像,所以沒有太大的幫助。

在動畫的每個幀之間,數據中沒有太多變化。

回答

0

您可以將所有圖像轉換爲JPG,併爲每個圖像創建另一個B圖像,作爲alpha通道,也可以是JPG(這應該是非常可壓縮的),只需自己管理透明度即可。

您也可以將所有圖像轉換爲一個大字節數組,並且在數組上應用LZ變體(LZO/ZLIB應該可以很好地工作),這應該可以節省至少15%。

0

您可以使用JPEG2000來存儲圖像。它具有非常好的壓縮效果,並且像PNG一樣支持alpha(它同時具有有損和無損模式),但它使用需要浮點處理器的wavelets(以防出現問題)。

另一種可能性是:

  • 轉換爲JPEG所述第一圖像和所述α信道爲B/W JPEG。
  • 計算從第一個圖像到第二個圖像的增量(差異)。
  • 壓縮增量(再次爲JPEG)。
  • 如果它的質量很高,則會降低質量。