Я использую достаточно хороший cms ( locomotive ( github )), чтобы позволить некоторым неопытным пользователям загружать изображения в систему. Программа способна изменять размеры и обрезать изображения до любого заданного размера.
Проблема в том, что Internet Explorer не знает, как обращаться с изображениями в кодировке CMYK. Пользователи этого приложения не совсем технически подкованы; просить их преобразовать свои изображения из CMYK в RGB не вариант. Я хотел бы изменить локомотив, чтобы он сделал изменение автоматически. Я пробовал это в течение нескольких часов, но пока мне не повезло.
Вот что я нашел:
- Локомотив использует стрекоза для изменения размера.
- Конкретно, он использует модуль imagemagick стрекозы.
- Файл, который определяет, как Dragonfly используется в локомотиве, можно найти здесь .
- Существует также файл инициализатора * dragonfly .
Я также обнаружил, что (думаю) мне нужно добавить параметр -colorspace RGB
к параметру, отправленному в Imagemagick Dragonfly. Не похоже, что «Стрекоза» предоставляет простой способ сделать это.
Я пробовал несколько вещей, последняя из которых заключалась в обезьянничьем патчении Процессор Dragonma's Imagemagick , так что опция -colorspace RGB
всегда используется. Я добавил это в локомотиве config/initializers/dragonfly.rb
:
# locomotive's config/initializers/dragonfly.rb
# ... Locomotive's default initialization
module Dragonfly
module ImageMagick
class Processor
alias :old_convert :convert
def convert(temp_object, args='', format=nil)
args += ' -colorspace RGB' # force RGB in all thumbnails
old_convert(temp_object, args, format)
end
end
end
end
Я был почти уверен, что это должно работать, но, к сожалению, это не так. И у меня кончились идеи. Кто-нибудь может помочь?