Bonjour,

j'ai essayer d'utiliser une fonction pour retailler les images.
Mais lorsque j'utilise cette fonction elle m'affiche des carrés noirs à la place des images.

Fonction :
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 
function redimage($img_src, $img_dest, $dst_w, $dst_h, $admin=false) {
 
//echo 'img_src: '.$img_src.'<br> img_dest :'.$img_dest.'<br> dst_w: '.$dst_w.'<br> dst_h: '.$dst_h;
 
	//Lit les dimensions de l'image
	$size = GetImageSize($img_src);  
	$src_w = $size[0]; $src_h = $size[1];
 
	//echo '<br> size : '.$size.'<br> src_w :'.$src_w ;
	//die();  
 
	//Teste les dimensions tenant dans la zone
	$test_h = round(($dst_w / $src_w) * $src_h);
	$test_w = round(($dst_h / $src_h) * $src_w);
 
	//Si Height final non pr&eacute;cis&eacute; (0)
	if(!$dst_h) { 
		$dst_h = $test_h;
	}
	//Sinon si Width final non pr&eacute;cis&eacute; (0)
	elseif(!$dst_w) {
		$dst_w = $test_w;
	}
	//Sinon teste quel redimensionnement tient dans la zone
	elseif($test_h>$dst_h) {
		$dst_w = $test_w;
	}
	else {
		$dst_h = $test_h;
	}
 
	//La vignette existe ?
	$test = (file_exists($img_dest));
 
	//L'original a &eacute;t&eacute; modifi&eacute; ?
	if($test) {
		$test = (filemtime($img_dest)>filemtime($img_src));
	}
 
	//Les dimensions de la vignette sont correctes ?
	if($test) {
		$size2 = GetImageSize($img_dest);
		$test = ($size2[0]==$dst_w);
		$test = ($size2[1]==$dst_h);
	}
 
	//Cr&eacute;er la vignette ?
	if(!$test) {
 
		//Cr&eacute;e une image vierge aux bonnes dimensions
 
		$extension=explode('.',$img_src);
 
 
		//$dst_im = ImageCreate($dst_w,$dst_h);
		$dst_im = ImageCreateTrueColor($dst_w,$dst_h); 
 
		//Copie dedans l'image initiale redimensionn&eacute;e
		if(strtolower($extension[1])=='jpg')
		{
			$src_im = imagecreatefromjpeg($img_src);
 
		}
 
 
		if(strtolower($extension[1])=='png')
		{
			$src_im = imagecreatefrompng($img_src);
 
		}
 
		if(strtolower($extension[1])=='gif')
		{
			$src_im = imagecreatefromgif($img_src);
 
		}
		//ImageCopyResized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
		ImageCopyResampled($dst_im, $src_im, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
		//Sauve la nouvelle image
		ImageJpeg($dst_im, $img_dest);
		//D&eacute;truis les tampons
		ImageDestroy($dst_im);  
		ImageDestroy($src_im);
	}
 
	$retour_dossier = '';
	if($admin) {
		$retour_dossier = '../';
	}
	//Affiche le descritif de la vignette
	return 'src="'.$retour_dossier.$img_dest.'?t='.time().'" width="'.$dst_w.'" height="'.$dst_h.'"';
}
Voila comment je l'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
		$ligne=mysql_fetch_array($result);
 
				$f =  "../photos/articles/".$ligne['IMAGES'];
				$f2 = "../photos/articles/vignette_".$ligne['IMAGES'];						
				$album ="../photos/articles/".$ligne['IMAGES'];
				$largeur = 180; 
				$hauteur = 160;
 
 
 
	<img '.redimage($f, $f2, $largeur, $hauteur).'" class="article1" />
Merci d'avance pour votre aide