草庐IT

iphone - UIGraphicsGetImageFromCurrentImageContext 视网膜分辨率?

coder 2023-09-22 原文

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();  

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

最佳答案

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

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);

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

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

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

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 2);

关于iphone - UIGraphicsGetImageFromCurrentImageContext 视网膜分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9274234/

有关iphone - UIGraphicsGetImageFromCurrentImageContext 视网膜分辨率?的更多相关文章

随机推荐