从服务器下载高分辨率图像以进行视网膜显示的策略

Posted

技术标签:

【中文标题】从服务器下载高分辨率图像以进行视网膜显示的策略【英文标题】:Strategy for downloading high resolution images from server for retina display 【发布时间】:2012-05-24 00:53:45 【问题描述】:

因此,对于 ios 上的视网膜显示器,我通常会根据苹果关于如何进行视网膜显示器的指南,使用名为 @2x 的两倍大小的图像。但是这种命名约定仅适用于我无法写入的应用程序包中的图像。

您从服务器上下载高分辨率图像的策略是什么?

我是否应该总是只拉下高分辨率图像(对于普通的 60x60 图像来说是 120x120)并将其拍到 uiimageview 中?

【问题讨论】:

【参考方案1】:

设置视网膜图像你应该

UIImage *image;  // from download
image=[UIImage imageWithCGImage:[image CGImage] scale:2.0 orientation:UIImageOrientationUp];

首先检查你是否有视网膜显示器

if([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
    BOOL retina = [[UIScreen mainScreen] scale] == 2.0 ? YES : NO;

如果 "retine == YES" ,获取你想要的视网膜图像

【讨论】:

所以.. 如果我获取视网膜图像,请使用您的 uiimage 比例尺(我假设比例尺 2 表示该图像是应有大小的 2 倍)。如果不是retina 获取正常图像(可能来自不同的url),并使用正常的uiimage? 是的,使用“缩放”或者你可以只获取视网膜图像,但它会占用更多内存

以上是关于从服务器下载高分辨率图像以进行视网膜显示的策略的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 应用程序:视网膜显示的图像未显示

在 iphone 4 视网膜显示屏中显示图像

制作 iPad 应用程序以支持视网膜显示

在 iPhone SDK 中检测视网膜屏幕/iPhone 4

用于视网膜显示的 uiwebview 中的 iOS 内容大小

3gs 或 3g 手机上的视网膜图像