Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2011, 19h14   #1
Débutant
 
Inscription : juin 2006
Messages : 502
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 502
Points : 44
Points : 44
Par défaut probleme avec une fonction qui retaille mes images

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 :
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 :
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
mademoizel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 19h56   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ta fonction fonctionne, il serait bien que tu fasses un minimum de debugage.
Est-ce que les miniatures sont bien créés ?
Est-ce que tu peux les ouvrir depuis ton systèmes ?
Est-ce que la balise img est bien écrite dans la page finale ?
etc.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 20h01   #3
Débutant
 
Inscription : juin 2006
Messages : 502
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 502
Points : 44
Points : 44
Merci pour ta réponse.
Mais fais du débeugage.
L'image est bien créé mais bizarement il me créé une image noire.
Et j'ai regardé avec firebug et il affiche bien la balise img
mademoizel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 20h02   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Est-ce que tu arrives a ouvrir les images créées ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 20h15   #5
Débutant
 
Inscription : juin 2006
Messages : 502
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 502
Points : 44
Points : 44
Oui oui j'arrive bien a les ouvrir et ça m'affiche un carré noir.
La fonction me créé un carré noir au lieu de me créé la miniature de l'image
mademoizel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 20h22   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu as essayé avec des photos tierces ?
Tu pourrais nous fournir une image qui ne se recadre pas correctement ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 21h18   #7
Débutant
 
Inscription : juin 2006
Messages : 502
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 502
Points : 44
Points : 44
Photos tierce?

Voila l'image qui s'affiche et qui est créé dans mon dossier

seq.jpg
mademoizel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 21h26   #8
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
C'est une image que tu n'arrives pas a recadrer qui pourrait etre intéressante.
La copie d'écran de l'image noire ... comment dire ....
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h19.


 
 
 
 
Partenaires

Hébergement Web