6

我已经在rails中设置了回形针,并且一切正常(实际上我不得不用谷歌搜索... :)。

然而,我注意到 Page Speed 告诉我可以进一步无损压缩我的缩略图和大图像(回形针产生的图像)。我可以在我的模型中添加一个选项吗?我注意到 mod_deflate 不压缩图像(我使用的是 Firefox)。

4

3 回答 3

10

您可以使用回形针压缩 gem向回形针处理添加压缩。

在您的 Gemfile 中:

gem "paperclip-compression", "~> 0.1.1"

(当然运行捆绑安装)

在您的模型中:

has_attached_file :avatar,
                :styles     => { :medium => "300x300>", :thumb => "100x100>" },
                :processors => [:thumbnail, :compression]

jpegtran通过重新排列压缩数据(DCT 系数)来工作,而无需完全解码图像。因此,它的变换是无损的

注意:如果您在 heroku 上运行,则需要将 jpegtran 和 optipng 二进制文件添加到您的应用程序中。这是一篇关于在 heroku 上运行二进制文件的好文章。

于 2013-01-08T18:43:22.280 回答
1

您应该对各种 JPEG 压缩级别进行自己的测试,但我注意到我可以将 ImageMagicks 质量设置降低到 75 并且仍然看不到任何明显的差异 - 大约节省了 30-40% 的文件大小。

我的模型看起来像:

  has_attached_file :photo,
    :styles => {
      :"185x138" => {
        :geometry => "185x138>"
      }    },
    :convert_options => {
      :all => "-auto-orient",
      :"185x138" => "-quality 75",

-quality 75适用于 ImageMagick。如果您使用不同的处理器,则需要进行相应调整。

于 2011-07-02T16:42:39.937 回答
0

那么 FFMPEG 或 AVCONV 呢?

sudo apt-get install ffmpeg/avconv

= 初始化器

Paperclip.options[:command_path] = "/usr/bin/" # see `which ffmpeg`

= 模态

after_save :compress_with_ffmpeg

def compress_with_ffmpeg
  [:thumb, :original, :medium].each do |type|
    img_path = self.avtar.path(type)
    Paperclip.run("ffmpeg", " -i #{img_path} #{img_path}")
  end
end
于 2013-10-04T10:19:51.497 回答