windu.2b Posté(e) le 16 mai 2006 Partager Posté(e) le 16 mai 2006 Bonsoir à tous, Allors voilà: je désire redimmensionner des images png (+ de 300, donc le faire à la main est assez inenvisageable!) qui font toutes 128*128, pour obtenir les mêmes, mais en 32*32! Sauf que lorsque je fais ca, je perds laa transparence qu'il y avait sur les images de départ (le fond devient noir, au lieu d'être transparent)! Voici mon code, si quelqu'un a une idée: // Répertoire de départ $dir = '../images/date/'; // Répertoire de destination $newdir = '../images/new/'; $dh = opendir($dir); $percent = 1/4; // ratio while (($file = readdir($dh)) !== false) { if ($file != '.' && $file != '..') { // Calcul des nouvelles dimensions list($width, $height) = getimagesize($dir.$file); $newwidth = $width * $percent; $newheight = $height * $percent; //echo "fichier : $file : type : " . filetype($dir . $file) . "<br />\n"; // chargement $thumb = imagecreatetruecolor($newwidth, $newheight); $img = imagecreatefrompng($dir.$file); imagecopyresized($thumb, $img, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); imagealphablending($thumb, false); imagesavealpha($thumb, true); imagepng($thumb, $newdir.$file); } } closedir($dh); Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 16 mai 2006 Partager Posté(e) le 16 mai 2006 C'est pas envisageable un préprocessing avec convert d'imagemagick ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 16 mai 2006 Auteur Partager Posté(e) le 16 mai 2006 C'est pas envisageable un préprocessing avec convert d'imagemagick ? Euh, si en fait... Je suis tellement à fond dans mon PHP que j'en oublie les solutions extérieures! Bon, ben je vais voir ce que je peux faire ca... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Wooden Posté(e) le 16 mai 2006 Partager Posté(e) le 16 mai 2006 pourquoi utiliser imagealphablending($thumb, false); ?? ça risque d'enlever la transparence non? ou alors imagealphablending($thumb, true); Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 17 mai 2006 Auteur Partager Posté(e) le 17 mai 2006 pourquoi utiliser imagealphablending($thumb, false); ?? ça risque d'enlever la transparence non? ou alors imagealphablending($thumb, true); j'avais essayé dasn les 2 cas, et ca ne changeait rien au résultat! J'ai en fait essayé toutes les possibilités entre imagealphablending() et imagesavealpha(), et ca donne toujours la même chose: mon fond devient noir! J'ai essayé aussi imagemagick, mais pas trop compris comment le manier! J'ai alors testé php-magick mais mon programme tourne à 100% sans s'arreter (j'ai pourtant repris un exemple fourni dans les sources) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.