Скрепка: почему, несмотря на снижение качества, размер изображения сильно не меняется? - PullRequest
3 голосов
/ 14 февраля 2011

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

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

  has_attached_file :avatar, 
    :styles      => {
      :small    => ["250x250#", :jpg] 
  }
  :convert_options => { :small => '-quality 40' }

Это будетпреобразуйте изображения в формат .jpg, установите размеры и уменьшите качество до 40 (это значение только для тестирования).

Однако я заметил, что, несмотря на снижение качества, размерфайл не сильно меняется.Например, я сообщаю размер изображения с использованием и без использования опции :convert_options => { :small => '-quality 40' }:

# Without using the 'convert_options'
Image size: 57.35 kB (58730 bytes)

# Using the 'convert_options'
Image size: 55.25 kB (56576 bytes)

Почему разница так мала?Как лучше всего уменьшать размер без потери качества?


ОБНОВЛЕНИЕ : Возможно, как сказал @Matt Gibson, комментируя этот вопрос, для сжатия этоважно также, «как изображение выглядит как» (например, фотографическое).Кажется, что сжатие варьируется от картинки к картине в зависимости от фона, количества цветов, ... на изображении.

Ответы [ 3 ]

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

Вы говорите, что хотите улучшить время загрузки вашего сайта, поэтому позвольте мне предложить альтернативное решение. Почему бы не перенести ваши изображения в сервис типа amazon s3 (простая система хранения), чтобы они могли обслуживать ваши изображения для вас? А чтобы действительно ускорить процесс, вы можете использовать службу доставки контента, такую ​​как Amazon Cloud Front . Это, вероятно, ускорит ваш сайт намного больше, чем понизит качество изображения. Другое преимущество заключается в том, что когда вы начнете (скорее всего, бесплатно), это будет довольно дешево, и вы сможете легко масштабировать в будущем, если вам это понадобится.

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

Это может быть ошибка скрепки при настройке convert_options для стиля (ae: small), посмотрите на эту проблему

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

Опции должны работать нормально, возможно, ваше изображение просто не сжимается так хорошо.Попробуйте поиграть с инструментом convert на командном инструменте ( см. Документы ), чтобы увидеть, что помогает.Кроме того, кажется , что скрепка может теперь принимать опцию :quality напрямую.

...