簡體   English   中英

Rails Paperclip 圖像壓縮與 Page Speed 產生的比較

[英]Rails Paperclip image compression compared to what Page Speed produces

我已經在rails中設置了回形針,並且一切正常(我實際上不得不用谷歌搜索... :)。

然而,我注意到 Page Speed 告訴我可以進一步無損壓縮我的縮略圖和大圖像(回形針產生的圖像)。 有沒有可以放入我的 model 的選項? 我注意到 mod_deflate 不壓縮圖像(我使用的是 Firefox)。

您可以使用回形針壓縮 gem向回形針處理添加壓縮。

在您的 Gemfile 中:

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

(當然運行捆綁安裝)

在您的 model 中:

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

jpegtran通過重新排列壓縮數據(DCT 系數)來工作,而無需完全解碼圖像。因此,它的變換是無損的

注意:如果您在 heroku 上運行,則需要將 jpegtran 和 optipng 二進制文件添加到您的應用程序中。 這是一篇關於在 heroku 上運行二進制文件的好文章。

您應該對各種 JPEG 壓縮級別進行自己的測試,但我注意到我可以將 ImageMagicks 質量設置降低到 75 並且仍然看不到任何明顯的差異 - 大約節省了 30-40% 的文件大小。

我的 model 看起來像:

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

- -quality 75用於 ImageMagick。 如果您使用不同的處理器,則需要進行相應調整。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM