2012-08-14 68 views
1

我正在使用視網膜顯示器的iOS設備上工作。基本上,我有一個UIImageView並通過在文檔文件夾中加載jpeg圖像來設置其圖像。iOS:從加載的圖像爲視網膜顯示器設置具有正確比例因子的UIImageView圖像

比方說,UIImageView的尺寸爲100x100點。 jpeg圖像的尺寸爲200x200像素。據我所知,jpeg圖像應該在UIImageView中查看,沒有任何縮放。我讀JPEG圖像作爲

NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];    
NSString *jpegFilePath = [NSString stringWithFormat:@"%@/im_%d_%d.jpeg",docDir, dbPhotoId, i]; 
UIImage* tmpImage = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@", jpegFilePath]]; 

UIImage* tmpImage具有1的比例因子和寬度和高度的200和200(從tmpImage.scaletmpImage.size.widthtmpImage.size.height觀察到的)。

在這種情況下,如果我將UIImageView(尺寸100x100點)的圖像屬性設置爲tmpImage,我可以安全地假定不會有任何縮放或視網膜顯示問題嗎?

+0

你永遠無法安全地承擔任何事情。經常測試! – Cyprian 2012-08-14 19:55:02

回答

0

這取決於圖像視圖的contentMode屬性的值。如果值爲UIViewContentModeScaleToFill,則視網膜顯示屏上的圖像看起來不錯,但這不是正確的方法。

最好有兩個版本的圖像,一個用於正常顯示,另一個用於視網膜,如解釋here

+0

在我的特定應用程序中,加載的jpeg圖像只是爲捕捉的照片保存的圖像。因此,圖像將始終用於視網膜或始終用於非視網膜顯示。在這種情況下,我認爲沒有必要保存圖像的兩個版本。所以後續問題是:對於唯一視網膜情況,使用@ 2x修飾符保存圖像更好嗎?或者它沒有區別? – 2012-08-14 22:17:46

+0

是的,我認爲用@ 2x修飾符保存圖像更好,所以你不必擔心它的大小。或者,您可以通過調用'initWithCGImage:scale:orientation:'並通過[[UIScreen mainScreen] scale]'作爲比例值來創建一個新的'UIImage'。 – Hejazi 2012-08-14 22:36:18

+0

由於更清晰/更簡單的代碼設計,它更好嗎?還是更好,以這種方式,性能(例如,渲染圖像的計算)會更好? – 2012-08-14 22:40:00

相關問題