【问题标题】:UIGraphicsGetImageFromCurrentImageContext retina resolutions?UIGraphicsGetImageFromCurrentImageContext 视网膜分辨率?
【发布时间】:2014-01-05 03:21:51
【问题描述】:
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();  

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

【问题讨论】:

    标签: iphone objective-c ios


    【解决方案1】:

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

    UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);
    

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

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

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

    UIGraphicsBeginImageContextWithOptions(imageSize, NO, 2);
    

    【讨论】:

    • 不明白.. 我正在考虑使用第一个.. 会在视网膜上达到 124 x 124 的尺寸吗?
    • 哪一部分令人困惑?你查看UIGraphicsBeginImageContextWithOptions的文档了吗?
    • 谢谢...您的回答很棒..我正在这样做..但我只是有一个疑问..因为我没有视网膜设备来检查UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);会给我124在我上面的代码中,iPhone 4 和 4s 上的 x 124 图像.. 我正在使用它.. 但无论如何要检查?
    • 是的,它会做你想做的事。您可以通过将模拟器置于 Retina 模式来检查它。
    猜你喜欢
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    相关资源
    最近更新 更多