2012-01-11 61 views
0

我通常在我的iOS項目中(使用UIImageView實例中的NIB加載)使用Fireworks PNG(具有不同的層次,一些隱藏的等等)。通常情況下,我把PNG保存爲PNG-32來縮小文件大小,但現在我正在質疑這個問題(因爲那時我必須單獨存儲Fireworks PNG)......是否UIImage緩存文件或渲染的位圖?

在我的粗略測試中,較小的文件大小不會影響最終的內存使用。 是否存在關係,還是最終呈現的位圖很重要?

注意:我不是在問使用像素太大的圖像。一個有效的比較將是一個高質量的jpeg,其重量爲1mb,而質量相同的內容重量爲100K的低質量jpeg。內存使用相同嗎?

回答

0

UIImageView不做任何處理,所以如果你設置一個大圖像,當imageView需要它時,整個東西都會被加載到內存中,而不管imageView的大小如何。所以,是的,它確實有所作爲。您應該存儲在imageView內工作的最小圖像。

儘管您當前的示例使用的是NIB,但如果您正在創建一個顯示從其他來源(例如設備相機或外部服務)獲取的大圖像的應用程序,那麼在將它們用於UIImageView

+0

對不起,我在說這裏的文件大小不是圖像大小,也不是顯示大小。答案仍然相關嗎?謝謝。 – 2012-01-12 07:28:34

+0

我的回答與內存大小有關。如果這些文件最終具有相同的內存佔用量,那麼使用哪一個並不重要。較小的文件大小應該加載一點速度,但這可能不明顯。一般來說,我總是建議使用最小尺寸的資源。將其他約束(即你的時間等)考慮在內是合理的。 – XJones 2012-01-12 16:48:41

+0

這確實是個問題。它是結果位圖(全尺寸)決定內存佔用量還是必須解析的文件? UIImage緩存什麼?渲染位圖或文件?等等。對於這個問題,加載時間無關緊要,除非每次都從文件加載UIImage。只是修改了問題以反映這個簡單的問題。再次感謝。 – 2012-01-12 17:55:07