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 : Sélectionner tout - Visualiser dans une fenêtre à part
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);
	}
}
?>