【问题标题】:Loaded image in UIImage is pixelated on retinaUIImage 中加载的图像在视网膜上像素化
【发布时间】:2012-07-07 04:06:38
【问题描述】:

我从一个包含 jpg 图像的网络中解析了数据。问题是图像在视网膜显示器上看起来模糊/像素化。有什么解决办法吗?谢谢。

NSData *data = [NSData dataWithContentsOfURL:linkUrl];
            UIImage *img = [[UIImage alloc] initWithData:data];   

          //  detailViewController.faces.contentScaleFactor=[UIScreen mainScreen].scale;//Attampt to solve the problem

            detailViewController.faces.image=img;

【问题讨论】:

    标签: iphone image retina-display pixelate


    【解决方案1】:

    使用数据初始化图像后,使用正确的比例创建一个新图像,如下所示:

    img = [UIImage imageWithCGImage:img.CGImage scale:[UIScreen mainScreen].scale orientation:img.imageOrientation];
    

    ...但请注意,除非您将其放大,例如通过在图像视图中拉伸它,否则该图像现在将在视网膜显示器上显示一半大小。

    【讨论】:

    • 它说使用了未声明的标识符“图像”。我用“img”替换了它,但图像仍然是像素化的。谢谢。
    • 这段代码也很模糊。没有它,它只是像素化。不过谢谢。
    • 是的,原因是您正在加载的图像的像素太小,因此您的图像视图正在放大它(以填充图像视图的框架)。您需要加载更大的图像,并像我的示例中那样设置比例,这样它就不会在视网膜显示器上缩小。例如,如果您的图像视图frame{{10, 10}, {100, 100}},那么您需要为视网膜显示器加载 200x200 的图像,为标准显示器加载 100x100 的图像(并正确设置比例,如上所示)。
    • 我没有机会加载更大的图像。我只是想以它在网络上的方式展示它。不过我接受你的回答。
    猜你喜欢
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    相关资源
    最近更新 更多