【问题标题】:Best image optimization technique for RailsRails 的最佳图像优化技术
【发布时间】:2015-04-15 09:52:41
【问题描述】:

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

  1. 文章的标题图片
  2. 头像图片

等等。

我可以确保图片不超过 5mb。但是,页面需要很长时间才能加载。

我们使用 Ruby 来生成 API 和 Angular。我们做了很多优化,我们开始使用 CDN 来降低 js 文件的负载。

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

我可以使用后台进程来处理每个上传的图像,但我寻求一种更干净、更方便的方式。

【问题讨论】:

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


    【解决方案1】:

    我会推荐 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 质量进行二分搜索。

    【讨论】:

    • 谢谢@Mark,我还没有接受它,因为我还在试验它。拜托,如果你有其他方式分享它,选择越多越好。
    • 没问题!花点时间尝试一下:-)
    • mogrify -strip -define jpeg:extent=100kb *.jpg 如何在不重复我自己的情况下对 png 或位图做同样的事情?我应该先将所有图像转换为 png 并开始对它们进行条带化吗?或者只是让扩展程序保持原样并处理任何进来的东西
    • 参数jpeg:extent 仅存在并适用于JPG 文件,因为只有它们支持交易质量的概念。 BMP 和 PNG 文件仅支持无损压缩,没有降低质量以减小大小的选项。对于这些格式,您可能需要寻找其他工具。
    【解决方案2】:

    您可以使用 ImageMagick 批量调整大小

    mogrify -resize 50% *
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 2020-03-03
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      相关资源
      最近更新 更多