我正在开发一个需要处理图像的ipad应用程序;它在不同的情况下使用每个图像的四个不同版本(每个版本都有自己的分辨率和图像质量)。
我必须在应用程序中获取图像的选项是:
1)仅下载原始图像。在ipad上将图像转换为多种格式。 ipad上的CPU /内存消耗量会更大,带宽会更低。
2)在服务器上将图像转换为多种格式,将所有变体下载到ipad。 ipad上的CPU /内存消耗很低,带宽使用率会更高,下载时间也会更长 更长的时间。
根据您的经验,哪种解决方案是最佳做法?如果您事先知道应用程序是否主要使用无线网络或在使用3G的路上使用,您的方法会有所不同吗?
答案 0 :(得分:0)
在我看来,尽量少下载更方便。有可能,在设备上进行转换通常要快得多。特别是当不在WiFi或3G上时,但连接速度要慢得多 - 很多人经常会这样。它还可以最大限度地减少数据传输的数量/成本,可能对某些用户来说非常重要。
在服务器端也可能更容易......
因此,如果计算结果不是非常缓慢,那么客户就会赢。
答案 1 :(得分:0)
正如您假设大多数人都会使用WiFi,我说服务器上的调整大小:
首先,记忆/速度。虽然您可以在iPad上生成多个线程以加快调整为多种格式的速度,但这只会让您在内存方面受到相当大的限制。仅加载一张1600x1200图像就可以轻松自行装载40M。多线程中的多种格式可能会让您遇到麻烦(例如因没有足够的内存而被杀死)。您的服务器将有多个RAM和多个处理器。 iPad不会打败它。当然,缺点是您必须在应用程序的生命周期内维护一个配套站点。
其次,在服务器上使用和而不是对iPad应用程序中的确切格式进行硬编码将使您在决定使用格式更改(或修正)某些内容时获得更多自由。显然,更改服务器端代码要比通过稍微调整将iPad应用程序重新部署到App Store更容易(并且有些人升级而有些人不升级)。
我不太担心带宽消耗,但请确保在用户使用3G连接时记下它(使用Reachability API)。
答案 2 :(得分:0)
这取决于图像的大小不是吗?
如果你使用的是非常大的图像,你甚至可以下载一个较小的图像,然后让服务器实际对大图像进行编辑,iPad应用程序会发送有关如何处理大图像的指示(s )。
这样你就可以用iPad编辑全分辨率的1400万像素照片 - 下载一个“纯粹的”百万像素图像(它可能是jpg压缩的一些),然后告诉服务器处理14 * 4 = 56MB * 2或更多内存需要真正的过程。
3G速度非常快 - 一些咖啡屋的Wifis速度较慢。我不会让你担心的。