Paperclip - преобразование tiff изображений в jpg или png

Я использую paperclip, чтобы пользователь мог загружать изображения, и я хочу преобразовать изображение в jpg/png только если это изображение tiff.

Я использую следующий код на моем изображении .rb:

validates_attachment_presence :data
  validates_attachment_content_type :data,
  :content_type => ['image/jpeg', 'image/pjpeg',
                                   'image/jpg', 'image/png', 'image/tif', 'image/gif'], :message => "has to be in a proper format"

Я хотел бы знать, можно ли конвертировать tiff-изображения в jpg или png при их загрузке.

Спасибо большое

Ответы

Ответ 1

Наконец нашел решение. Думал, что это может быть полезно кому-то другому.

В файле image.rb введите следующие строки кода:

 :styles => {
    :thumb => ["150x172#",:jpg],
    :large => ["100%", :jpg]
  }

Это создаст две дополнительные папки в папке основного изображения, thumb и large. Если вы хотите отображать изображения (которые первоначально были tiff), просто отобразите версию jpeg, найденную в "большой" папке.

Обратите внимание, что исходные изображения tiff будут сохранены в папке "оригинал" в папке основного изображения.

Приветствия

Ответ 2

Таня, ваше решение хорошее. Однако, если вам не нужен тип файла, вы можете сохранить все изображения как jpg, передав также: оригинальный вариант. Пример:

:styles => {
....
  :original => ["100%", :jpg]
}

Это поможет гарантировать, что нигде, где вызывается файл, вы столкнетесь с проблемами.