скрепка — преобразование изображений tiff в jpg или png

#ruby-on-rails #paperclip

#ruby-on-rails #скрепка

Вопрос:

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

Я использую следующий код в моем image.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]
  }
  

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

Обратите внимание, что исходные изображения в формате tiff по-прежнему будут храниться в папке «original» под основной папкой изображений.

Приветствия

Ответ №2:

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

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

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