android - 处理不同尺寸照片的移动应用程序和服务器的设计

标签 android ios django image image-processing

我不知道这个标题是否清楚地反射(reflect)了问题内容。如果您认为它令人困惑,请帮助重新措辞。谢谢!

这是关于一些常见架构的一般性问题。我正在开发一款 Android 应用程序,它可以像 Instagram 一样拍摄和分享照片。我有一个由 Django 提供支持的后端 Web 服务。

我面临的问题是,在应用程序中,我需要显示图像的不同分辨率(例如,个人资料图像的缩略图、预览的中等分辨率以及扩展的全分辨率) ImageView 。)我想问一个关于如何实现这一点的常见模式。

我对完成这项任务有两个建议,但不确定应该走哪条路:

1.当用户从移动应用上传照片时,我可以在本地压缩它并发送 3 种不同的尺寸(低分辨率缩略图、中分辨率和高分辨率)。因此服务器端可以存储它们并在不同情况下返回它们。我能想到的这种方法的缺点是它会消耗更多用户的数据使用量,因为现在用户需要发送多个图像。它还可能导致上传需要更多时间,并且对用户体验的影响更大。

2.当用户从移动应用上传照片时,他们只上传原始图像。服务器端逻辑将对每个收入图像进行压缩,并相应地存储它们。 这种方法的缺点是服务器可能需要承担更多的工作负载。在这种情况下,如果用户增加很多,可能会导致服务器崩溃。

我希望得到有关此问题的一些指导,或者有关此主题的任何引用都会有所帮助!

最佳答案

将全尺寸图像上传到服务器并让服务器完成繁重的工作。创建三个版本的图像(小、中、大)并将它们存储在服务器(或内容交付网络)上。创建一个数据库表来跟踪每个图像及其各个版本的图像 ID。

使用 Android,您不会知道运行您的应用程序的手机有多强大,永远不要假设它可以处理您需要的任何图像操作,同时尝试保持网络 I/O 尽可能低。

关于android - 处理不同尺寸照片的移动应用程序和服务器的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20555935/

相关文章:

java - 如何录制 PCM 数小时,但停止时仅保存最后 5 分钟的录音?

Android:如何向一个 Activity 添加两个 View

ios - 如何为我们的应用程序使用可访问性不同的字体大小?

iphone - 带有异常肥胖的 UISegmentedControl 的 UIToolbar

python - 如何使用 Django 模型查询获取缺失数据?

android - ADB set display-size 错误地使用 landscape 显示 portrait

android - 如何使用应用程序在亚马逊市场上撰写评论?

iphone - UIView 内存释放

python - 在 Django 中查找给定时间段内最新条目的更快方法

python - 无法将 Django 设置为与 smtp.gmail.com 一起使用