Можно ли сжать размер (в байтах) изображения до определенного размера с помощью Paperclip?

Я использую Ruby on Rails 3 и хотел бы знать, можно ли сжать размер (в байтах) изображения до определенного размера с помощью плагина/гема Paperclip.

Например, если я загружаю изображение размером 1500 КБ, я бы хотел, чтобы размер большого пальца был изменен до 10 КБ.

В это время в моем файле модели у меня есть:

:styles       => {
  :thumb      => {
    :geometry => '50x50#',
    :quality  => 50,
    :format   => :jpg
  },
}

Если да, то как это сделать?


person user502052    schedule 14.02.2011    source источник
comment
Этот ответ поможет вам? stackoverflow.com/questions/4988527/   -  person JeffH    schedule 14.02.2011


Ответы (2)


Я не верю, что есть способ сжать что-то до определенного выходного размера. Во-первых, может быть невозможно сжать что-то до такого размера. С Jpeg вы можете настроить параметр «качество», но нет реального способа предсказать, какой будет точная степень сжатия.

Если все, что вам нужно, это миниатюры файлов определенного размера, попробуйте сжать изображение до одного значения «качества», а затем постепенно настраивать его до тех пор, пока выходной размер не будет соответствовать вашим требованиям.

person bta    schedule 14.02.2011

Paperclip обрабатывает изображение на основе ImageMagick

Насколько я знаю, нет опции ImageMagick, которая может указать размер выходного изображения.

Но вы можете изменить размер или качество изображения, чтобы уменьшить размер.

Вы можете использовать опцию -quality, чтобы настроить уровень качества от 1 до 100, а опция -strip может удалить весь профиль и прочую ерунду с изображения.

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

Вики-страница Paperclip

параметры ImageMagick

person Jevan Wu    schedule 28.02.2017