2009-07-23 104 views
1

我在iPhone上開發,大部分遊戲都使用OpenGL ES,但也有一些菜單使用CGImage和Quartz來顯示。在OpenGL ES中,我知道無論圖像壓縮如何進行(JPG,PNG等),作爲紋理存儲在內存中的數據都是8位紋理,除非我使用PVRTC,在這種情況下,我可以將它2或4位。由於CGImage很大,我們一直有內存問題,所以我的問題是...... Quartz和CGImage使用什麼類型的優化和壓縮?我無法在蘋果的文檔中找到詳細信息,當我真的想知道如果將尺寸設置爲2的幫助時,將256色圖像放入JPG還是PNG,等等。速度不重要,記憶是這裏的瓶頸。Quartz如何處理紋理壓縮?

謝謝。

回答

3

石英是未壓縮的。它用於快速合成和渲染像素精確的內容。一旦你的圖像被繪製到上下文中,它們來自何處並不重要,但是無論像素是多少(如果我正確記得的話,通常每個像素4個字節),它們會採用每個像素所需的任何內容。它所做的一件大事是將alpha預先乘以避免混合。

現在,如果不顯示內存壓力下的某些視圖可以驅逐它們的內容,並根據需要重新構建它們。在這些情況下,來自壓縮源的CGImage通常會佔用較少的內存,但我認爲這與您描述的情況無關。

+0

完美,非常感謝您的信息。 – Eli 2009-07-23 17:58:54