![](/img/trans.png)
[英]How do I improve Rails / Paperclip image compression inside or ImageMagick / Rmagick?
[英]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.