我们在网站的许多地方使用图片:
等等。
我有控制权以确保图像不超过5mb。但是,页面需要很长时间才能加载。
我们使用Ruby来生成API和Angular。我们进行了大量优化,我们开始使用CDN来降低js
文件的负载。
图像是现在唯一的问题。我不想使用paperclip
Gem,因为我们已经使用dragonfly
。
我可以使用后台进程处理每个上传的图像,但我寻求更简洁方便的方法。
答案 0 :(得分:5)
我建议 ImageMagick 执行此任务。您可以使用-strip
选项删除EXIF标头和其他无关信息以减少文件大小。
convert input.jpg -strip output.jpg
或者使用mogrify
一次性完成所有图片
mogrify -strip *.jpg
您还可以指定较低的质量来减少文件大小,例如
mogrify -quality 70% *.jpg
我发现更好的选择是指定最大文件大小(以kB为单位)并让 ImageMagick 计算出它可以达到的最佳质量,同时不超过该文件大小,如下所示:
mogrify -strip -define jpeg:extent=100kb *.jpg
将删除EXIF信息,并将文件大小减少到100kB。
如果你想要一种与Python类似的方法,我写了一个非常好的答案here。它对满足最大尺寸要求的JPEG质量进行二进制搜索。
答案 1 :(得分:0)
您可以使用ImageMagick Batch resize
mogrify -resize 50% *