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 :
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);
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!