压缩和调整用户上传的图像

compress & resize user uploaded images

我正在构建一个包含大量用户上传图片的网站(假设是 airbnb)

到现在为止,网站会将您提交的任何图片上传到 amazon s3,然后相应地显示。有时这些图像太重,会增加页面加载时间。

我想将此图片调整为所需的分辨率并尽可能压缩(转换为 jpeg)以缩短加载时间并减少流量。

我发现这可以通过以下任一方式完成:

每种方法有什么好处?哪个最常见?在每种情况下我应该考虑什么?

我的堆栈目前是 node.js / angular。我暂时不打算使用 CDN,因为该项目处于开发阶段

提前致谢!

您需要安装 imagemin 并将其添加到您的 grunt 任务中 link 让您可以开始 https://github.com/gruntjs/grunt-contrib-imagemin 祝你好运。

郑重声明,我发现最简单的解决方案是加载用户在 html5 canvas 中选择的任何图像并将其转换为 jpeg,然后上传 jpeg 并在后端我会使用节点 imagemagick 包调整它的大小。

通过在前端转换为 jpeg,您可以在不损失性能的情况下最大限度地缩短上传时间,还可以将输入格式规范化到后端服务。