Generer une image avec transparence

Répondre
maxroucool
le 30/06/2007 à 20:40
maxroucool
Slt tlm,

je veux créer une miniature d'une image png qui contient des pixels transparents. Seulement, avec le bout de code qui suit, les pixels transparents sont replacés en pixels noirs.

<?php
$src = imagecreatefrompng($srcImg);

$dstImg = imagecreatetruecolor($newWidth, $newHeight);

imagecopyresampled($dstImg, $src, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);

imagepng($dstImg, $dirDest.$nameImgApercu);
?>


Merci bp!
LA GLOBULE
le 30/06/2007 à 21:33
LA GLOBULE
Il faut sauver le canal alpha de ton PNG avant de redimensionner le truc :

<?php
$srcImg = 'pom.png';
$newWidth = 80;
$newHeight = 80;

$width = 256;
$height = 256;

$src = imagecreatefrompng($srcImg);
$dstImg = imagecreatetruecolor($newWidth, $newHeight);

imagealphablending($dstImg, false);
imagesavealpha($dstImg, true);

imagecopyresized($dstImg, $src, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);

imagepng($dstImg, 'mini.png');
?>


Enjoy :)
maxroucool
le 01/07/2007 à 20:05
maxroucool
ok merci, ca marche nickel.

Mais j'ai oublier de demander comment faire la meme chose avec un gif.

D'autre part, y a-t-il un moment précis pour utiliser la fonction imagerotate() car elle ne fonctionne pas.
Pour info, je l'utilise entre imagecopyresampled() et le header


+++
LA GLOBULE
le 01/07/2007 à 23:05
LA GLOBULE
Pour un gif, j'ai fais çà :

<?php
$src = imagecreatefromgif($srcImg);
$dstImg = imagecreatetruecolor($newWidth, $newHeight);

$white = imagecolorallocate($dstImg, 255, 255, 255);

imagefill($dstImg, 0, 0, $white);
imageColorTransparent($dstImg, $white);
imagecopyresampled($dstImg, $src, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);

imagegif($dstImg, 'mini.gif');
?>


Mais le résultat n'est pas top.

Je chercherais sur le net demain.

Pour le imagerotate, j'ai repris l'exemple du manuel PHP, et il fonctionne sans problème.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours