Image miniature tout noire
Bonjour, j'ai pris dans un tuto une classe Php qui permet de miniaturiser une image en la redimensionnant. Le Soucis avec mon script c'est que ma miniature est tout noire aucune distinction des différents objets présents sur l'image.
Code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| <?php
class Img {
static function creerMin($img, $chemin, $nom, $mlargeur = 100, $mhauteur = 100) {
//recuperation des dimensions de l'image
$dimension = getimagesize($img);
//creation d'une image a partir du fichier recupere
if(substr(strtolower($img), -4)==".jpg"){
$image = imagecreatefromjpeg($img);
} else if(substr(strtolower($img), -4)==".png") {
$image = imagecreatefrompng($img);
} else if(substr(strtolower($img), -4)==".gif") {
$image = imagecreatefromgif($img);
}
//Image ne peut etre redimensionne
else {return false;}
//Creation des miniatures
//Creation d'image hauteur et largeur voulue
$miniature = imagecreatetruecolor($mlargeur, $mhauteur);
//gerer la position et le redimensionnement de la grande image
if($dimension[0]>($mlargeur/$mhauteur)*$dimension[1]){
$dimY = $mhauteur*$dimension[0]/$dimension[1];
$decalX=-($dimX-$mhauteur)/2;
$decalY=-($dimY-$mlargeur)/2;
}
if($dimension[0]<($mlargeur/$mhauteur)*$dimension[1]){
$dimX=$mlargeur*$dimension[1]/$dimension[0];
$decalY=-($dimY-$mhauteur)/2;
$decalX=-($dimX-$mlargeur)/2;
}
if($dimension[0]==($mlargeur/$mhauteur)*$dimension[1]){
$dimX=$mlargeur*$mhauteur;
$decalX=0;
$dimY=0;
}
//On modifie l'image crée en y plaçant la grande image redimensionnée
imagecopyresampled($miniature,$image,$decalX,$decalY,0,0,$dimX,$dimY, $dimension[1]);
//On sauvegarde le tout
imagejpeg($miniature, $chemin."/".$nom.".jpg",90);
}
}
?> |