2011-10-13 91 views
1

我需要從我的應用程序中獲取iPhone/iPad照片庫中的一些圖像,並將它們存儲在覈心數據實體中,並將​​它們顯示爲小圖像(48x48像素) UITableViewCell和詳細UIView中的大約80x80像素。我遵循Recipes示例應用程序,他們使用UIImageJPEGRepresentation(value, 0.1)轉換爲NSData並將字節存儲在Core Data中,並且不會佔用太多空間,這很好。但是,當檢索數據時,使用UIImage *uiImage = [[UIImage alloc] initWithData:value];並將其顯示爲帶有「Aspect Fit」的縮略圖圖像,看起來很可怕並且有顆粒感。我試圖改變JPEG壓縮中的圖像質量變量,但即使將它設置爲0.9也無濟於事。iOS:在覈心數據中存儲縮略圖圖像

這是正常的嗎?有沒有更好的方法來壓縮不會造成太多難題的圖像?由於我只想顯示一個小縮略圖,然後是一個稍微大一點的縮略圖,因此我認爲核心數據對於存儲該數據非常有用,因爲它應該(理論上)也支持iCloud。但如果它看起來很糟糕,那我就不得不重新考慮了。

回答

1

兩件事,你是否調整大小的圖像大小?你有沒有試過UIImagePNGRepresentation()?這應該壓縮它而不會丟失質量。

+0

謝謝。我確實嘗試了兩種方式,但是在任何情況下,圖像看起來都很糟糕。它可以在iPhone上正常工作,但在iPad上,從圖書館中選取圖像非常龐大,並且可能會將Aspect Fit放入48x48縮略圖中,看起來不太好。你會推薦什麼作爲UIImage調整算法?也許問題在於這個。我使用這個:http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/ –

0

如果UIImagePNGRepresentation(無損)給你不好的圖像,那麼問題出在你的圖像調整大小的代碼。核心數據只是給你什麼你回你放什麼,所以如果你得到不好的圖像,這是因爲你把壞的圖像英寸

是你的iPhone/iPad的視網膜,而其他不是?如果是這樣,也許問題是你並不是真的想要48x48像素的圖像,你想要48x48點(這意味着你需要兩個96x96的圖像用於視網膜質量顯示)。