2012-02-14 56 views
5
UIImageView *cellimage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0 , 107, 70)]; 

以上聲明我確信會在視網膜分辨率設備和標準視頻設備中製作合適的尺寸..這是標準尺寸爲107 x 70像素,視網膜尺寸爲214 x 140的框架。UIGraphicsGetImageFromCurrentImageContext視網膜決議?

我想知道的是,如果下面的UIGraphicsGetImageFromCurrentImageContext也做同樣的事情..圖像將爲標準的67 x 67和視網膜版本的124 x 124?

CGSize imagesize = CGSizeMake(67, 67); 
     UIGraphicsBeginImageContext(imagesize); 
     NSLog(@" Converting "); 
     [image drawInRect:CGRectMake(0,0,imagesize.width,imagesize.height)]; 
     newImage = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 

如果沒有人能告訴我如何區分模型。 謝謝

回答

24

您需要使用UIGraphicsBeginImageContextWithOptions而不是UIGraphicsBeginImageContext,以便您可以指定圖像的比例因子。這將使用比例因子設備的主屏幕:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0); 

這將使用含有cellImage屏幕比例因子,如果cellImage是在屏幕上:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, cellImage.window.screen.scale); 

這將硬編碼規模因子:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 2); 
+0

不明白..我在考慮使用第一個..會在視網膜上做124 x 124的大小嗎? – Shubhank 2012-02-14 09:44:42

+0

哪一部分令人困惑?你檢查了「UIGraphicsBeginImageContextWithOptions」的文檔嗎? – 2012-02-14 09:46:22

+0

[以編程方式創建高分辨率位圖圖像](https://developer.apple.com/library/ios/#documentation/2DDrawing/Conceptual/DrawingPrintingiOS/SupportingHiResScreens/SupportingHiResScreens.html#//apple_ref/doc/uid/TP40010156- CH15-SW9) – 2012-02-14 09:48:15