#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]
}
Это поможет гарантировать, что нигде, где вызывается файл, вы не столкнетесь с проблемами.