Image noire avec la librairie GD

Fermé
ephelya Messages postés 289 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 - 10 nov. 2014 à 18:19
ephelya Messages postés 289 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 - 15 nov. 2014 à 17:40
Bonjour,

J'utilise pour la première fois un script qui utilise la librairie GD. Le script a l'air de fonctionner en partie, ça m'enregistre bien une image redimensionnée, mais quand je l'affiche, elle est complètement noire... Comme je n'y connais rien à GD je vous appelle au secours (je dois livrer le site cette semaine!)
Voici mon code:

$urlphoto = $article -> Urlphoto();
$nomFichier = DIR_UPLOAD_ARTICLES.$urlphoto ;
$urlmini = DIR_UPLOAD_ARTICLES."mini_".$urlphoto;

//Obtention de l'extension du fichier
$partieFichier = explode(".",$nomFichier);
if(count($partieFichier) > 0)
$extension = array_pop($partieFichier);
else
$extension = "";

//Si l'un ou l'autre est égal à 0, le redimensionnement conserve le ratio

list($width0, $height0, $type0, $attr0) = getimagesize($nomFichier);

$largeur = WIDTH_MINI;
$hauteur = $largeur / $width0 * $height0;

$typeValide = array("PNG","GIF","JPEG","JPG");

if(empty($nomFichier))
die("Impossible de trouver l'image, aucun nom spécifié.");

if(!file_exists($nomFichier))
die("L'image que vous essayez de redimensionner n'existe pas.");

if(!in_array(strtoupper($extension), $typeValide))
die("Le type de l'image n'est pas valide. Seulement PNG, GIF et JPG sont acceptés.");

if(empty($largeur) && empty($hauteur))
die("Veuillez spécifier la nouvelle hauteur et/ou la nouvelle largeur de l'image.");

if(strtoupper($extension) == "JPG") //La fonction pour créer un JPG se nomme imagecreatefromJPEG
$extension = "JPEG";

//Création de la nouvelle image
$imageSource = call_user_func_array("imagecreatefrom".strtolower($extension), array($nomFichier));

if(!$imageSource)
die("Erreur, ce fichier n'est pas une image ou est corrompu.");

//Est-ce que l'utilisateur a donné la largeur/hauteur ou est-ce que nous devons trouver hauteur/largeur ?
if(empty($largeur) || empty($hauteur))
{
list($largeurImageSource, $hauteurImageSource) = getimagesize($nomFichier);

if(empty($largeur))
{
$ratio = $hauteur / $hauteurImageSource;
$largeur = $largeurImageSource * $ratio;
}
else
{
$ratio = $largeur / $largeurImageSource;
$hauteur = $hauteurImageSource * $ratio;
}
}

//Création de la nouvelle image
$imageFinale = imagecreatetruecolor($largeur, $hauteur);
imagecopyresampled($imageFinale, $imageSource, 0, 0, 0, 0, $largeur, $hauteur, $largeurImageSource, $hauteurImageSource);

//$nomFichierFinal = round($largeur) . "x" . round($hauteur) . "_" . $nomFichier;
call_user_func_array("image".strtolower($extension), array($imageFinale, $urlmini, 100));
imagedestroy($imageSource);
return true;


Merci d'avance!! :-)

A voir également:

1 réponse

ephelya Messages postés 289 Date d'inscription mercredi 28 septembre 2011 Statut Membre Dernière intervention 20 juin 2023 2
15 nov. 2014 à 17:40
personne pour me donner un coup de pouce?? :-/
0