UIGraphicsGetImageFromCurrentImageContext视网膜分辨率?

时间:2012-02-14 09:11:23

标签: iphone objective-c ios

UIImageView *cellimage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0 , 107, 70)];

上述声明我肯定会在视网膜分辨率设备和标准分辨率设备中制作合适的尺寸。标准的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();  

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

1 个答案:

答案 0 :(得分:26)

您需要使用UIGraphicsBeginImageContextWithOptions代替UIGraphicsBeginImageContext,以便指定图片的比例因子。这将使用设备主屏幕的比例因子:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);

如果屏幕上显示cellImage,则会使用包含cellImage的屏幕的比例因子:

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

这将对比例因子进行硬编码:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 2);