2013-09-10 5 views
2

J'essaie de convertir un fichier PDF ou JPG en un png avec des couleurs spécifiques étant transparent.PHP Convertir JPEG ou PDF en PNG avec transparence

Par exemple. J'ai un fichier avec un fond blanc et texte noir et à convertir la zone blanche d'être transparent sur la .png

J'ai essayé d'utiliser ImageMagick:

exec('convert -density 144 ' . $infile.' -transparent "#FFFFFF" ' .$png_file); 

et cela semble fonctionner parfois et non d'autres fois pour une raison quelconque

aussi les bords du noir sortent un peu déchiquetés. Est-ce que quelqu'un connaît un moyen de rendre les bords plus lisse. ou toute autre fonction en php à utiliser pour créer la transparence.

Aussi la qualité doit être parfaite ainsi que parfois lorsque les dimensions du fichier sont petites la sortie png est très basse résolution et je dois le garder aux mêmes dimensions donc je ne peux pas vraiment utiliser la fonction -densité

+0

Pouvez-vous spécifier des exemples de fichiers qui fonctionnent et lesquels ne fonctionnent pas? – Alex

Répondre

0

Vous pouvez résoudre les contours irréguliers en utilisant l'option Fuzz factor -fuzz, mais comme l'explique le document usage manual, les résultats peuvent ne pas correspondre à vos besoins.

Le retrait d'arrière-plan est également discuté longuement dans le usage manual, décrivant plusieurs techniques en plus d'utiliser l'option -transparent. Sans plus d'informations, je ne sais pas pourquoi votre code de conversion fonctionne parfois et pas à d'autres, mais je ne pense pas que vous avez besoin de l'option -density pour la conversion JPG. Ca peut être le problème.