在客户端上生成缩略图

9

我和我的团队正在开发一款iOS应用程序。我们允许现场技术人员上传解决技术设备问题的特定问题的图像。当这些图片上传到S3时,重要的是能够放大查看(因此要保持相对较高的质量)。

最近,我们决定添加缩略图,因为在其他人浏览iOS应用程序时,下载1.5-2.5MB的图像比较慢。

我的同事认为处理这个问题的最佳方法是在iOS上生成一个200-500kb的缩略图,然后将图像和缩略图上传到s3。

我提出了我的担忧,因为我们的一些技术人员可能处于互联网速度较慢、数据使用受限的地区。所以在设备上进行所有这些额外的工作并上传没有任何意义。然而,团队认为这是一个好的解决方案,并将继续推进。我向他们展示了如何从S3和Lambda自动生成缩略图的简单示例...这样我们就可以通过上传更高保真度的图像或者只上传更少的图像来增加应用程序的速度。有时用户可能会上传多达100张图片...这意味着额外的20-50mb...

无论如何,我想听听你们认为处理这个问题的最佳方法是什么,主要是为了我的精神健康检查。


3
你的理智完好,除了处理这些小问题。很抱歉发生了这种情况。 - John Griffin
@JohnGriffin 谢谢,你是在我女友(不熟悉技术的人)之后第一个告诉我的人。几个月前一个有常识的工程师离职了,我想他会同意我的观点,因为他经常提到现在的团队喜欢走捷径 :( - agrublev
2
你已经知道答案了,这不是一个适合在SO上提问的问题,因为它基于个人观点。但你也已经得到了正确的答案 - 让服务器来处理它。 - Wain
3
为了确保你的理智,给100声望点奖励?唉,为了处理那个团队决策,我很同情你...虽然我认为建议客户端缩略图创建方法的人不会得到值得这个奖励的回答。 - Gero
你的缩略图是什么尺寸和格式?200-500kb听起来有点大。 - TomSwift
我们需要这些缩略图在iPad上能够良好地工作,因此查看苹果用于其音乐封面艺术品的艺术品,他们建议缩略图大小为512px x 512px...而我们存储的图像是复杂系统硬件外部的图片。 - agrublev
1个回答

2
我不完全理解你的项目的复杂性,但是根据经验,我有一个建议 - Cloudinary。与S3作为一种通用云存储解决方案不同,Cloudinary是专门设计来处理图像的。
我们有一个在线分类应用程序,每天处理数万张照片,访问量达到20万次。Cloudinary为我们的所有需求提供了非常好的解决方案。我们有用户从移动设备和桌面设备上传图片,对这些图片进行书签标记,基于CDN的服务以及缩略图生成。
我是否提到他们内置缩略图生成了呢?他们还有很多其他功能,包括
  • 调整大小和裁剪
  • 优化的JPEG自定义裁剪
  • 人脸缩略图
  • 旋转圆形缩略图
  • 缩放效果和缩放图像叠加
  • 水印图像
  • 优化的WebP
  • 覆盖、边框、阴影文本覆盖、边框、阴影等。
管理控制台也非常出色,您可以在云端配置上述所有功能,并且它适用于几乎任何应用程序(我们在内部Ruby、Go、NodeJS服务、Web应用程序以及iOS和Android应用程序中使用它)。
我不是为了向您销售Cloudinary而受雇,但我可以证明,如果我需要基于图像的服务,我会选择Cloudinary,而不是S3。像EBay和TED等主要玩家也将其用于其图像需求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接