UIGraphicsGetImageFromCurrentImageContext视网膜分辨率?

Shu*_*ank 6 iphone objective-c ios

UIImageView *cellimage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0 , 107, 70)];
Run Code Online (Sandbox Code Playgroud)

我相信以上声明将在视网膜分辨率设备和标准分辨率设备中制作适当的尺寸.标准上为107 x 70像素,视网膜上为214 x 140.

我想知道的是,如果下面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();  
Run Code Online (Sandbox Code Playgroud)

如果没有,谁能告诉我如何区分模型.谢谢

rob*_*off 26

您需要使用UIGraphicsBeginImageContextWithOptions而不是UIGraphicsBeginImageContext,以便您可以指定图像的比例因子.这将使用设备主屏幕的比例因子:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);
Run Code Online (Sandbox Code Playgroud)

这将使用屏幕的比例因子cellImage,如果cellImage在屏幕上:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, cellImage.window.screen.scale);
Run Code Online (Sandbox Code Playgroud)

这将硬编码比例因子:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 2);
Run Code Online (Sandbox Code Playgroud)