Как я могу снизить качество загрузки изображения с помощью Paperclip? - PullRequest
6 голосов
/ 14 февраля 2011

Я использую Ruby on Rails 3 и хотел бы снизить качество загрузки изображения с помощью плагина Paperclip / gem. Как я могу это сделать?


На данный момент в моем файле модели есть:

  has_attached_file :avatar, 
    :styles      => {
      :thumb     => ["50x50#",   :jpg],
      :medium    => ["250x250#", :jpg],
      :original  => ["600x600#", :jpg] }

, который преобразует изображения в .jpgформат и установит размеры.

Ответы [ 4 ]

16 голосов
/ 14 февраля 2011

Попробуйте использовать convert_options.

has_attached_file :avatar, 
                  :styles          => { :thumb => '50x50#' },
                  :convert_options => { :thumb => '-quality 80' }
11 голосов
/ 14 февраля 2011

Из скрепки wiki есть опция качества:

class User < ActiveRecord::Base
  has_attached_file :photo,
                    :styles => {
                      :small => {
                        :geometry => '38x38#',
                        :quality => 40,
                        :format => 'JPG'
                      },
                      :medium => {
                        :geometry => '92x92#',
                        :quality => 50
                      }
end
3 голосов
/ 14 февраля 2011

Как говорит Джеймс, как только вы поэкспериментируете с командной строкой ImageMagick convert и поэкспериментируете с командной строкой, вы сможете передать их в Paperclip с помощью опции convert_options, как в примере с Джеймсом.

Если у вас есть несколько аргументов, передайте их как массив. Вот пример, над которым я работал некоторое время:

:convert_options => {:medium => ["-shave", "2x2", "-background", "white", 
                                 "-gravity", "center", "-extent", 
                                 "530x322", "+repage"],
                     :small  => ["-shave", "1x1"] }
0 голосов
/ 28 февраля 2017

За исключением -quality, опция -strip в ImageMagick может удалить весь профиль и другие пух с изображения, что может уменьшить размер

has_attached_file :photo,
  :styles => {
  :thumb => "100x100#" },
  :convert_options => {
  :thumb => "-quality 75 -strip" }
...