windu.2b Posté(e) le 16 mai 2006 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);
theocrite Posté(e) le 16 mai 2006 Posté(e) le 16 mai 2006 C'est pas envisageable un préprocessing avec convert d'imagemagick ?
windu.2b Posté(e) le 16 mai 2006 Auteur Posté(e) le 16 mai 2006 theocrite a dit : 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...
Wooden Posté(e) le 16 mai 2006 Posté(e) le 16 mai 2006 pourquoi utiliser imagealphablending($thumb, false); ?? ça risque d'enlever la transparence non? ou alors imagealphablending($thumb, true);
windu.2b Posté(e) le 17 mai 2006 Auteur Posté(e) le 17 mai 2006 Wooden a dit : 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)
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.