Bonjour
Réduction taille d'une image, je m'arrache ce qu'il reste de cheveux depuis 2 jours
Tout fonctionne s'i n'y a pas de transparence, sinon :
- format jpg : pas de problème
- format gif : image créée mais non transparente
- format png : fichier créé mais non image
Mes versions :
PHP Version 5.3.3-7+squeeze28
GD Version : 2.0
Mon code (variables explicites) :
Merci de votre aide et bonne journée
Réduction taille d'une image, je m'arrache ce qu'il reste de cheveux depuis 2 jours
Tout fonctionne s'i n'y a pas de transparence, sinon :
- format jpg : pas de problème
- format gif : image créée mais non transparente
- format png : fichier créé mais non image
Mes versions :
PHP Version 5.3.3-7+squeeze28
GD Version : 2.0
Mon code (variables explicites) :
Code:
$image_reduite = substr($source, 0, -4)."-resize-".$largeur_finale.'.'.$extension;
if ($extension == "jpg" || $extension == "jpeg") $image_nouvelle = imagecreatefromjpeg($source);
elseif ($extension == "png") $image_nouvelle = imagecreatefrompng($source);
else $image_nouvelle = imagecreatefromgif($source);
$image_finale = imagecreatetruecolor($largeur_finale,$hauteur_finale);
if ($extension == "png")
{
imagealphablending($image_finale,false);
imagesavealpha($image_finale,true);
$transparent = imagecolorallocatealpha($image_finale, 0, 0, 0, 127);
imagefilledrectangle($image_finale, 0, 0, $largeur_finale, $hauteur_finale, $transparent);
imagealphablending($empty, true);
}
if ($extension == "gif")
{
$transparent_index = imagecolortransparent($image_nouvelle);
imagepalettecopy($image_nouvelle, $image_finale);
imagefill($new_image, 0, 0, $transparent_index);
imagecolortransparent($image_finale, $transparent_index);
imagetruecolortopalette($image_finale, true, 256);
}
imagecopyresampled($image_finale,$image_nouvelle,0,0,0,0,$largeur_finale,$hauteur_finale,$largeur_originale,$hauteur_originale);
if ($extension == "jpg" || $extension == "jpeg") imagejpeg($image_finale, $image_reduite, 100);
elseif ($extension == "png") imagepng($image_finale, $image_reduite, 100);
else imagegif($image_finale, $image_reduite, 100);
imagedestroy($image_nouvelle);
imagedestroy($image_finale);
Merci de votre aide et bonne journée