ruby - Dragonfly - Fuerza la conversión de CMYK a RGB al hacer miniaturas
-
14-11-2019 - |
Pregunta
Estoy usando un cms bastante agradable (locomotora(github)) para permitir que algunos usuarios no expertos en tecnología carguen imágenes en el sistema.El programa puede cambiar el tamaño y recortar imágenes a cualquier tamaño determinado.
El problema es que Internet Explorer no sabe cómo manejar imágenes codificadas en CMYK.Los usuarios de esta aplicación no son exactamente expertos en tecnología;pedirles que transformen sus imágenes de CMYK a RGB no es una opción.Me gustaría modificar la locomotora para que haga el cambio automáticamente.He estado intentando esto durante algunas horas pero hasta ahora no he tenido suerte.
Esto es lo que he encontrado:
- Usos de la locomotora libélula para realizar el cambio de tamaño.
- En concreto, utiliza la libélula. imagenmagia módulo.
- Puede encontrar el archivo que define cómo se utiliza Dragonfly en la locomotora. aquí.
- También hay una libélula. archivo inicializador.
También descubrí que lo que (creo) necesito es agregar un -colorspace RGB
opción al parámetro enviado a Imagemagick por Dragonfly.No parece que Dragonfly ofrezca una opción fácil para hacer eso.
He probado varias cosas, la última consiste en parchear monos. Procesador Imagemagick de Dragonfly de manera que la -colorspace RGB
La opción siempre se utiliza.He añadido esto en locomotoras. 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
Estaba bastante seguro de que esto debería funcionar, pero desafortunadamente no es así.Y me he quedado sin ideas.¿Alguien puede ayudar?
Solución 3
Desafortunadamente, no parece haber una manera sencilla de hacer esto con Dragonfly.Me he rendido.
Otros consejos
En la línea de comando, a veces necesito agregar -type truecolor
Para que las conversiones de espacios de color funcionen de manera confiable:
convert cmyk.jpeg -colorspace rgb -type truecolor rgb.jpeg
¿Quizás intentes agregarlo también en tu código?
De la lista relacionada a la derecha, ¿podría ser útil esta respuesta SO?