Bonjour,
Le code que j'utilise pour réduire la taille de mes images ne marche pas : ça me crée une miniature 150*150 dans le bon dossier mais toute noire!
Je n'arrive pas à comprendre pourquoi. merci de m'aider...
functionredim($img)
{
//largeur et hauteur max de l'image =150 px puis on cherche à calculer au mieux les dimenssions pour ne pas déformer l'image
//on récupére les dim de l'image source
$size=GetImageSize('images/'.$img);
$img_largeur=$size[0];
$img_hauteur=$size[1];
if($img_largeur==$img_hauteur)
{
$mini_largeur=150;
$mini_hauteur=150;
}
if($img_largeur>$img_hauteur)
{
$mini_largeur=150;
$rapport=150/$img_largeur;
$mini_hauteur=round(rapport*$img_hauteur);
}
if($img_largeur<$img_hauteur)
{
$mini_hauteur=150;
$rapport=150/$img_hauteur;
$mini_largeur=round(rapport*$img_largeur);
}
//je récupére l'extension de l'image à redimmenssionner
$extension=pathinfo('images/'.$img,PATHINFO_EXTENSION);
//je traite chacun des trois cas avec la fonction correspondante : jpeg, png ou gif
if($extension=='jpeg'or$extension=='jpg'or$extension=='JPEG'or$extension=='JPG')
{
$source=imagecreatefromjpeg('images/'.$img);
$destination=imagecreatetruecolor(150,150);// On crée la miniature vide
imagecopyresampled($destination,$source,0,0,0,0,$mini_largeur,$mini_hauteur,$img_largeur,$img_hauteur);
imagejpeg($destination,'mini_images/'.$img,100);// on enregistre l'image en gardant le même nom dans le dossier "mini_images"
}
if($extension=='png'or$extension=='PNG')
{
$source=imagecreatefrompng('images/'.$img);
$destination=imagecreatetruecolor(150,150);
imagecopyresampled($destination,$source,0,0,0,0,$mini_largeur,$mini_hauteur,$img_largeur,$img_hauteur);
imagepng($destination,'mini_images/'.$img,100);
}
if($extension=='gif'or$extension=='GIF')
{
$source=imagecreatefromgif('images/'.$img);
$destination=imagecreate(150,150);
imagecopyresampled($destination,$source,0,0,0,0,$mini_largeur,$mini_hauteur,$img_largeur,$img_hauteur);
imagegif($destination,'mini_images/'.$img,100);
}
}
redim("d.jpg");
?>