1

我正在开发一个 IOS 应用程序,该应用程序将显示用户从我的网站上传的图像。

在移动设备或服务器上调整图像大小的最佳做法是什么?

选项 A - 调整缩略图大小、所需大小并将其存储在云服务器上,例如 Amazon S3,其中托管 iphoneretina_ImgA、Iphone_ImgA、Ipad_ImgA、IphoneThumbnail_ImageA 的图像。

选项 B - 调整为缩略图大小,设备上的所需大小。

向 iphone/ipad 设备显示服务器图像的最佳方法是什么?

4

1 回答 1

1

如果您可以在服务器端进行尽可能多的图像处理并向设备提供最佳尺寸的图像(即支持所需用户界面的最小可能图像),您将在设备上获得最佳性能,这不仅可以节省下载时间(尤其是如果用户使用较慢的蜂窝网络),还有宝贵的设备内存和处理时间(如果您将高分辨率图像下载到设备,将它们转换为适当大小的图像或更糟糕的是,不调整大小所需的 CPU 周期和内存量他们并尝试让可怜的ol'UIImageView尝试渲染它们)。

简而言之,如果您可以在服务器端进行操作,那就太理想了。如果您在设备上执行此操作,您将受到网络带宽、内存消耗和设备处理时间的影响。

但是,如果原始图像不是太大,您可以通过一些合理的折衷方案摆脱困境,这些折衷方案需要适度的设备端处理。例如,我正在与具有适度大小的图像和有限的现有服务器端图像处理能力的旧版 CMS 系统交互,因此我只是在下载/需要时在设备上懒惰地制作缩略图,但是 (a) 原始图像不是很大;(b) 我无论如何都需要设备上的原始分辨率图像;(c) 我必须做一些聪明的GCD(或者你可以使用一些其他等效的并发处理技术)来确保用户界面不会受到太明显的影响,因为应用程序会生成一次性缩略图(然后缓存的缩略图本地以在未来获得最佳性能)。

在这些情况下,您的最终架构将是关于您的图像、服务器功能、应用程序要求的详细信息的函数,但是,如果有任何经验法则,它将尽可能多地在服务器端进行,平衡网络带宽和服务器复杂性问题与设备上的其他需求。

于 2012-10-23T04:33:14.443 回答