J'essaie de prendre cette image, que j'ai converti dans un fichier .png et Ensuite, veuillez supprimer le fond blanc pour le rendre transparent.
J'ai essayé de courir ce qui suit mais je n'ai pas eu de chance. P>
$strInputFile = 'car.png'; $execScript = '/usr/local/bin/convert '.$strInputFile.' '; $execScript .= "-transparent white car-new.png"; $output = shell_exec($execScript);
6 Réponses :
Voulez-vous utiliser -Transparence code> a> plutôt que
-Transparent code>? p>
J'ai essayé d'utiliser -Transparency White et le nouveau fichier n'est même pas créé maintenant.
Avez-vous essayé d'exécuter la commande à la main sur le système? Ou omettre cela, a fait écho à la valeur de $ sortie code> afin que vous puissiez voir s'il y a un message d'erreur?
Echoing $ Sortie me donne ce / usr / local / conversion /var/www/html/test/car.png -Transparency blanc /var/html/test/car-new.png code>
Cela ressemble plus à ce que vous echo'd $ exécutant code>, pas
$ sortie code>.
Quand j'ai essayé, $ sortie = shell_exec ($ exécutant); echo $ sortie; code> rien ne s'est passé. La page était vide.
Le fond de votre image n'est pas blanc code> (je veux dire 0xFFFFFF), c'est 0xfefefe. Essayez:
Problème similaire avec PHP Imagick:
Lorsque vous convertissez SVG en PNG transparent, n'oubliez pas de mettre ceci avant Imagick-> ReadimageBlob (): P>
$imagick->setBackgroundColor(new ImagickPixel('transparent'));
J'ai eu le même problème et la suggestion ci-dessus m'a aidé à obtenir un peu plus loin. Cependant, le fichier PNG généré a des antécédents noirs. :(
Donc, après beaucoup d'essais et d'erreurs, j'ai réalisé que j'utilisais $ IM-> AdaptiveSharpenImage (2,1); Dans mon code PHP après la méthode SetbackgroundColor et celle-ci est apparue pour créer un arrière-plan non transparent. Après avoir retiré cette méthode, je pourrais obtenir des arrière-plans transparents PNG. Maintenant, pour déterminer comment obtenir des images de PNG SPARP, croustillantes et complets de SVG. :) Merci encore pour la réponse.
n'oubliez pas de mettre ceci avant code> doit être donné en gras. sauvé plusieurs heures !!
En gras supplémentaire, voire lourd ou noir, avec une surface d'affichage étendue!
Essayez le code suivant:
$strInputFile = 'car.png'; $target = 'car_transparent.png'; $im = new Imagick($strInputFile); $im->paintTransparentImage($im->getImageBackgroundColor(), 0, 10000); $im->setImageFormat('png'); $im->writeImage($target); $im->destroy();
Si vous ne faites pas de script shell, essayez ceci:
$ convert -transparency white car.png car-new.png
Comme l'image est une JPEG, qui est soumise à des pertes et à de légères inexactitudes de couleur, les Blancs de votre image ne sont pas réellement 100% blancs pure. Imagemagick a un moyen de traiter avec ceci via le paramètre L'incantation correcte ici est: P > -Fuzz code> qui permet un degré de floue ou une plage d'erreur autorisée, lors de la spécification des couleurs.
convert car.jpg -fuzz 10% -transparent white car.png
Avec quelques tentatives, j'ai obtenu un résultat parfait avec: convert source.png -fuzz 4% -Transparent white résultat.png code>.
10% code> mangeait trop de pixels.