Rails的最佳图像优化技术

时间:2015-02-14 11:23:53

标签: ruby-on-rails ruby image optimization imagemagick

我们在网站的许多地方使用图片:

  1. 文章标题图片
  2. 图片为头像
  3. 等等。

    我有控制权以确保图像不超过5mb。但是,页面需要很长时间才能加载。

    我们使用Ruby来生成API和Angular。我们进行了大量优化,我们开始使用CDN来降低js文件的负载。

    图像是现在唯一的问题。我不想使用paperclip Gem,因为我们已经使用dragonfly

    我可以使用后台进程处理每个上传的图像,但我寻求更简洁方便的方法。

2 个答案:

答案 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% *