我正在开发一个IOS应用程序,它将显示用户从我的网站上传的图像。
在移动设备或服务器上重新调整图像大小的最佳做法是什么?
选项A - 调整缩略图大小,所需大小并将其存储在云端服务器上,例如主机映像为iphoneretina_ImgA,Iphone_ImgA,Ipad_ImgA,IphoneThumbnail_ImageA。
选项B - 在设备上调整缩小到所需大小的缩略图。
向iphone / ipad设备显示服务器映像的最佳方法是什么?
答案 0 :(得分:1)
如果您可以在服务器端进行尽可能多的图像处理并为设备提供最佳尺寸的图像(即支持所需用户界面的最小图像),您将在设备上获得最佳性能,这将节省不仅下载时间(例如,如果用户在较慢的蜂窝网络上),还有宝贵的设备内存和处理时间(如果您将高分辨率图像下载到设备,将其转换为适当大小的图像所需的CPU周期和内存量,或者更糟,不要调整它们的大小,并试图让穷人“UIImageView
尝试渲染它们”。
简而言之,如果你能在服务器端做到这一点,那就是理想的选择。如果在设备上执行此操作,则会在设备上承受网络带宽,内存消耗和处理时间。
如果原始图像不是太大,那么您可以通过一些合理的妥协来实现,这需要适度的设备端处理。例如,我正在与具有适度大小的图像和有限的现有服务器端图像处理功能的传统CMS系统连接,所以我只是在下载/需要时懒洋洋地在设备上制作我的缩略图,但是(a)原始图像不是很大; (b)无论如何,我需要设备上的原始分辨率图像; (c)我必须做一些聪明的GCD(或者你可以使用其他一些等效的concurrent processing技术)来确保用户界面不会因为应用程序执行一次性缩略图而受到太明显的影响生成(然后在本地缓存缩略图以便将来获得最佳性能)。
在这些情况下,您的最终架构将是有关您的图像,服务器功能,应用程序要求的详细信息的功能,但是,如果有任何经验法则,它将在服务器端执行您可以将网络带宽和服务器复杂性问题与设备上的其他需求相平衡。