2012-06-07 22 views
22

Tengo el siguiente:ImageMagick PDF a JPG a veces resulta en fondo negro

ghostscript-fonts-5.50-24 
ImageMagick-6.7.2-1 
ghostscript-9.02-1 

que utilizo para crear una serie de archivos JPG para cada página usando:

convert -density 175 -colorspace sRGB test.pdf -resize 50% -quality 95 test.jpg 

Cuando ejecuto esto en mi máquina de Windows parece funcionar bien, pero en nuestro servidor de Linux obtenemos el problema de fondo negro.

Los archivos JPG resultantes tienen un fondo negro que hace que la imagen no sea legible, ¿qué es lo que me falta o hay algo que debería hacer para corregir esto?

He estado buscando en Google durante días pero cada sugerencia no parece funcionar para mí.

Cualquier ayuda es muy apreciada, gracias de antemano :)

EDITAR

Sólo notado esta salida al convertir uno de los archivos PDF que produce el fondo negro:

**** Warning: Fonts with Subtype = /TrueType should be embedded. 
      The following fonts were not embedded: 
        Arial 
        Arial,Bold 
        Arial,BoldItalic 
**** This file had errors that were repaired or ignored. 
**** The file was produced by: 
**** >>>> Microsoft« Word 2010 <<<< 
**** Please notify the author of the software that produced this 
**** file that it does not conform to Adobe's published PDF 
**** specification. 

Este parece relacionado, pero como no tenemos control sobre cómo se producen los PDF, necesitamos cierta forma de solucionar este lado del servidor.

Gracias de nuevo

+2

_Please notificar al autor del SOFTWARE_ - je, buena suerte con ese ';-)'. – halfer

+0

Me pregunto, ¿establecería la ayuda del color '-background' aquí? ¿Quizás necesites configurarlo en blanco? – halfer

+0

He logrado que funcione al convertir a PNG en lugar de JPG, ya que son compatibles con la transparencia. Gracias por la ayuda – jhdevuk

Respuesta

6

solución simple a este problema es utilizar un formato de imagen que soporta la transparencia, tales como PNG.

Así:

convert -density 175 -colorspace sRGB test.pdf -resize 50% -quality 95 test.png 

problema resuelto :)

+6

solo deseamos poder encontrar la manera de hacerlo funcionar con jpg ... – rogerdpack

+0

¿Qué hay de -alpha off? – Nigralbus

+0

@rogerdpack, pruebe http://tinypng.org/ o [Mejorado pngquant] (https://github.com/pornel/improved-pngquant). ¿Sabes cómo puedes guardar un PNG como una imagen de color indexada y se ve como un GIF? Bueno, resulta que puedes hacer la paleta de colores indexada * y * preservar la transparencia alfa. El resultado es un PNG enormemente comprimido que se ve casi idéntico al original. Se suponía que [JPEG 2000] (http://en.wikipedia.org/wiki/JPEG_2000) tenía compatibilidad con transparencias alfa para archivos JPEG, pero admite que el formato de archivo nunca ganó realmente tracción en los navegadores web. – thirdender

39

se topó con la de hoy, ha encontrado:

http://www.wizards-toolkit.org/discourse-server/viewtopic.php?f=3&t=20234

Sobre la base de que, éstos debería funcionar:

  • -flatten
  • -alpha flatten
  • -alpha remove

estoy actualmente mediante el siguiente para mi caso específico, que funciona muy bien:

convert -thumbnail "1280x800>" -density 300 -background white -alpha remove in.pdf out.jpg 
+0

Los probé, todos funcionan. –

+3

Si desea dividir un PDF de varias páginas en varias imágenes JPEG por página, '-flatten' no funcionará, ya que mezclará todas las páginas en una sola imagen. '-alpha flatten' o' -alpha remove' es el camino a seguir. – florian

+1

Para C# puede usar: image.Alpha (AlphaOption.Remove); – Flappy