ruby - Dragonfly - принудительное преобразование CMYK в RGB при выполнении миниатюр - PullRequest
1 голос
/ 29 февраля 2012

Я использую достаточно хороший 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

Я был почти уверен, что это должно работать, но, к сожалению, это не так. И у меня кончились идеи. Кто-нибудь может помочь?

Ответы [ 3 ]

1 голос
/ 14 июля 2012

В командной строке мне иногда нужно добавить -type truecolor, чтобы обеспечить надежную работу преобразований цветового пространства:

convert cmyk.jpeg -colorspace rgb -type truecolor rgb.jpeg

Может быть, вы пытаетесь добавить его и в свой код?

0 голосов
/ 14 июля 2012

К сожалению, нет простого способа сделать это с помощью Dragonfly.Я сдался.

0 голосов
/ 29 февраля 2012

Может ли помочь этот ответ из соответствующего списка справа?

Правильное преобразование изображения CMYK в RGB с помощью RMagick

...