Jump to content

problème avec GD...


Recommended Posts

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

Link to comment
Share on other sites

C'est pas envisageable un préprocessing avec convert d'imagemagick ?

Euh, si en fait... :zarb:

Je suis tellement à fond dans mon PHP que j'en oublie les solutions extérieures! :transpi:

Bon, ben je vais voir ce que je peux faire ca...

Link to comment
Share on other sites

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)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...