
Generando miniaturas de archivos PDF con imagemagicka vecesrepresenta colores incorrectos. Estamos usando una versión antigua de imagemagick (6.5.7-8, esa es la versión instalada en los servidores heroku). Aquí está el comando que estamos usando actualmente:
convert \
-size "725x1200>" \
-colorspace RGB \
-flatten \
-density 300 \
-quality 100 \
input.pdf \
output.jpg
Intenté usar diferentes espacios de color como sRGB, YIQ, ... pero ninguno de ellos reproduce el color correctamente.
El uso de imagemagick-6.7.7-6 localmente funciona, así que intenté agrupar el comando 'convertir' dentro del directorio /bin de mi aplicación, el comando funciona pero el resultado sigue siendo incorrecto, por lo que parece que el problema proviene de otro imagemagick. comando utilizado por 'convertir' o de otra biblioteca.
A continuación se muestra un ejemplo de las salidas:
- Salida correcta: a la izquierda
- Salida incorrecta: a la derecha
Curiosamente, con algunas páginas del mismo pdf el resultado siempre es correcto. ¿Alguna idea de qué biblioteca o comando podría ser el problema, o si hay un conjunto adecuado de opciones para pasar a imagemagick para hacerlo siempre bien?
Respuesta1
Después de investigar un poco más, parece que el problema proviene de Ghostscript al que le falta la -dUseCIEColor
opción. Y por lo que he recopilado en la web, no es posible pasar parámetros a GhostScript a través de Imagemagick. Sin embargo, lo que es posible es llamar a los 2 comandos junto con una tubería:https://stackoverflow.com/questions/653380/converting-a-pdf-to-png
Mi caso de uso específico
Esto es un poco más específico para mi caso de uso, pero pensé que alguien podría estar interesado. Mientras generamos miniaturas a través de Paperclip en nuestra aplicación Rails, creé un nuevo procesador de clips para encargarse de la conversión de pdf a jpg y luego imagemagick se hace cargo de realizar el cambio de tamaño habitual. Mi código con un ejemplo aquí:https://gist.github.com/3059321