Maison > développement back-end > tutoriel php > Comment puis-je préserver la transparence lors du redimensionnement des fichiers PNG avec PHP GDlib ?

Comment puis-je préserver la transparence lors du redimensionnement des fichiers PNG avec PHP GDlib ?

Susan Sarandon
Libérer: 2024-11-30 08:48:12
original
282 Les gens l'ont consulté

How Can I Preserve Transparency When Resizing PNGs with PHP GDlib?

Préserver la transparence dans les PNG redimensionnés avec PHP GDlib

Lors du rééchantillonnage d'une image PNG à l'aide de PHP GDlib, il est courant de rencontrer un problème où les zones transparentes dans l'image originale sont remplis d'une couleur unie. Cela se produit même lorsque la fonction imagesavealpha() est utilisée.

Pour garantir que la transparence est préservée dans l'image rééchantillonnée, les étapes supplémentaires suivantes doivent être suivies :

  1. Définissez le mélange alpha de l'image mode sur false en utilisant imagealphablending($targetImage, false), où $targetImage est l'image rééchantillonnée.
  2. Définissez la sauvegarde alpha de l'image sur true en utilisant imagesavealpha($targetImage, true).

Exemple de code :

Le code révisé suivant démontre l'approche corrigée :

$uploadTempFile = $myField['tmp_name'];
list($uploadWidth, $uploadHeight, $uploadType) = getimagesize($uploadTempFile);

$srcImage = imagecreatefrompng($uploadTempFile);

$targetImage = imagecreatetruecolor(128, 128);
imagealphablending($targetImage, false);
imagesavealpha($targetImage, true);

imagecopyresampled($targetImage, $srcImage, 0, 0, 0, 0, 128, 128, $uploadWidth, $uploadHeight);

imagepng($targetImage, 'out.png', 9);
Copier après la connexion

En incorporant ces étapes supplémentaires, la transparence de l'image PNG redimensionnée sera maintenue, permettant la préservation des éléments transparents tels que les logos ou l'arrière-plan. images.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal