2014-06-17 3 views
0

au moment où je rencontre plusieurs problèmes en convertissant un fichier PDF au format PNG. La transparence est perdue dans le fichier pdf source.Convertir plusieurs pages PDF en PNG avec transparence

J'ai testé les outils terminaux suivants pour créer les outils png: GhostScript, Imagemagick et pdf à partir de poppler-tools, toujours sur un système Debian.

L'image doit avoir la même dimension que le pdf, également la même transparence.

commandes utilisées:

gs -dNOPAUSE -sDEVICE=pngalpha -sOutputFile=test%d.png -r96 -q design.pdf -c quit 
convert design.pdf test%d.png 
convert design.pdf -channel rgba -alpha on PNG32:test%d.png 
convert -background none -colorspace srgb design.pdf -colorspace srgb -channel rgba -alpha on PNG32:test%d.png 
pdftoppm -png file.pdf test 

Le résultat est pas prévu .png avec la transparence. L'arrière-plan est blanc, devrait être transparent à 100%. De plus, il y a une barre verte et devrait être semi-transparent. Dans tous mes essais, le résultat se termine dans une boîte verte plus claire sans transparence.

Pour voir mon résultat, j'ai téléchargé le pdf source, png créé défectueux et le résultat attendu (export depuis photoshop).

PDF: http://speedy.sh/W75HP/source-file.pdf 
Result: http://speedy.sh/hfZMt/faulty-created-design.png 
Expected: http://speedy.sh/7mpEk/design-the-way-it-should-be.png 

j'ai réussi à obtenir le fond blanc pour être transparent, mais la transparence réelle du fichier, y compris la barre verte semi-transparent/boîte est pas convertie correctement.

Quelle est la solution à mon problème?

Meilleures salutations, Chris

// Mise à jour D'accord, nous avons trouvé une solution avec un autre outil de partie qui 3th produit mon résultat attendu sur un moyen facile.

inkscape design.pdf -z --export-dpi=100 --export-png=design.png 

Thx pour l'aide

+0

* Le fond est blanc, devrait être de 100% transparent * -. L'arrière-plan d'une page PDF est blanc selon les spécifications. Peut-être que vos outils respectent les spécifications et peignent le fond blanc en premier. – mkl

+0

@mkl: Non, par défaut, l'arrière-plan de la page PDF n'est pas blanc. Il apparaîtra * blanc * par défaut. Mais vous pouvez changer la plupart des lecteurs pour le montrer comme un motif d'échiquier *** SI *** c'est transparent. Pour Adobe Reader: assurez-vous que la case est cochée dans * Préférences ... -> Affichage de page -> Contenu et informations de la page -> Afficher la grille de transparence * –

+0

@KurtPfeifle "La notion de page courante est généralisée pour faire référence à un groupe de transparence de l'ensemble de la pile d'objets placés sur la page, composées avec un fond blanc pur et totalement opaque. " ... "La toile de fond est nominalement blanche, bien qu'elle varie en fonction des propriétés réelles du support.Cependant, certains lecteurs conformes peuvent choisir de fournir une toile de fond différente, comme un damier ou une grille pour aider à visualiser les effets de transparence dans l'œuvre. "Ainsi, il * est * blanc, mais il peut être * visualisé * différemment. – mkl

Répondre

0

En utilisant Imagick (PHP Extension) Je converti une couleur de fond en transparence avec un code comme celui-ci (je converti un fichier JPG avec un fond blanc en PNG transparent):

$mask = new Imagick('/your/file/path.jpg'); 
$mask->setImageFormat('png'); 
$mask->paintTransparentImage('white', 0, 1000); // $fuzz = 1000 (3rd parameter) is just a guess 

Jetez un oeil ici: http://de3.php.net/manual/en/imagick.painttransparentimage.php

correspondants documentation Imagick: http://www.imagemagick.org/script/command-line-options.php#transparent

Cordialement, Michael

Questions connexes