"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi imagecreatefrompng() produit-il un fond noir au lieu d'une zone transparente ?

Pourquoi imagecreatefrompng() produit-il un fond noir au lieu d'une zone transparente ?

Publié le 2024-11-08
Parcourir:932

Why does imagecreatefrompng() Produce a Black Background Instead of a Transparent Area?

imagecreatefrompng() Produire un fond noir au lieu d'une zone transparente ?

En PHP, la fonction imagecreatefrompng() est couramment utilisée pour travailler avec PNG images. Cependant, il a été observé que lors de l'utilisation de cette fonction, la transparence PNG peut être convertie en une couleur noire unie.

Pour résoudre ce problème, les étapes suivantes peuvent être mises en œuvre après la création d'un nouveau canevas à l'aide de imagecreatetruecolor() :

  1. Attribuer une couleur noire : Attribuez une couleur noire à une variable entière à l'aide de la fonction imagecolorallocate().
  2. Supprimer le noir de la transparence : Utilisez la fonction imagecolortransparent() pour définir le noir comme couleur transparente, le rendant ainsi invisible.
  3. Désactivez le mélange alpha : Utilisez imagealphablending() avec une valeur fausse pour empêcher le canal alpha d'être mélangé aux couleurs de l'image.
  4. Activer la préservation du canal alpha : Utilisez imagesavealpha() avec une valeur vraie pour conserver toute la plage de transparence.

Par En mettant en œuvre ces modifications, les informations du canal alpha dans l'image PNG seront préservées, empêchant sa conversion en fond noir. Le code mis à jour ressemblerait à ce qui suit :

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3