Bonsoir à tous,

je vous sollicite car je rencontre un problème :

Je pars d'un formulaire qui récupère un URL d'une image.

Je récupère l'image à l'aide de la fonction imagecreatefromjpeg.

Ensuite, j'aimerai modifier cette image (couleurs) en lui appliquant des formules et la je bug car mon programme marche sur une image en local mais pas avec une image venant d'internet.

Voici mon 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
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
94
95
96
97
98
99
100
101
102
 
<?php 
 
////////////////////////Image récupérée d'un URL////////////////////////////////////
 
		if (isset($_GET['url'])) { 			
		   $url = str_replace('http://','',$_GET['url']);
 
		} else { die("erreur"); }
 
          $imgname = 'http://' . $url  
 
///////////////////////Traitement//////////////////////////////////////////////////
 
		//Essaye de lire l'image 
		function LoadJpeg($imgname)  
		{ 			
 
			$im = imagecreatefromjpeg($imgname);
 
			/* Traitement en cas d'échec */ 
			if(!$im) 
			{ 
				/* Création d'une image vide */ 
				$im = imagecreatetruecolor(150, 30); 
				$bgc = imagecolorallocate($im, 255, 255, 255); 
				$tc = imagecolorallocate($im, 0, 0, 0); 
 
				imagefilledrectangle($im, 0, 0, 150, 30, $bgc); 
 
				//On y affiche un message d'erreur 
				imagestring($im, 1, 5, 5, 'Erreur de chargement ' . $imgname, $tc); 
			} 
 
			return $im;  
		}
 
		//Chargement de l'image
 
		$img = LoadJpeg($imgname);
 
 
		//Récupération de la taille de l'image
		list($width, $height, $type, $attr) = getimagesize($imgname);
 
		///////////////////////////////////Filtre protanope et deuteranope//////////////////////////////
 
		//Parcours de l'image
 
		$couleur = array(array());
 
		for($i=0;$i<$height;$i++){
			for($j=0;$j<$width;$j++){
 
				//Retourne l'index de la couleur du pixel situé aux coordonnées spécifiées, dans l'image.
				$color_index = imagecolorat($img, $i, $j);
 
				//Retourne la couleur associée à un index.
				$recuperationcouleurs = imagecolorsforindex($img, $color_index);
 
				$couleur[$i][$j]= $recuperationcouleurs;
 
				///////////////////////////////////Protanope//////////////////////////////////
 
				//Calcul des valeurs RVB 
				$R_prota=$couleur[$i][$j]['red']*0.992052 + 0.003974;
				$G_prota=$couleur[$i][$j]['green']*0.992052 + 0.003974;
				$B_prota=$couleur[$i][$j]['blue']*0.992052 + 0.003974;
 
				//Calcul des valeurs LMS à partir des valeurs RGB
				$L_protanopes = 17.8824*$R_prota + 43.5161*$G_prota + 4.11935*$B_prota;
				$M_protanopes = 3.45565*$R_prota + 27.1554*$G_prota+ 3.86714*$B_prota;
				$S_protanopes = 0.0299566*$R_prota + 0.184309*$G_prota + 1.46709*$B_prota;
 
				//Calcul des couleurs que voit un protanopes en LMS
				$Ld_protanopes = 0*$L_protanopes + 2.02344*$M_protanopes - 2.52581*$S_protanopes;
				$Md_protanopes = 0*$L_protanopes + 1*$M_protanopes + 0*$S_protanopes;
				$Sd_protanopes = 0*$L_protanopes + 0*$M_protanopes + 1*$S_protanopes;
 
				//Passage du LMS au RGB
 
				$Rd = 0.080944*$Ld_protanopes - 0.130504*$Md_protanopes + 0.116721*$Sd_protanopes;				
				$Gd = -0.0102485*$Ld_protanopes + 0.0540194*$Md_protanopes - 0.113615*$Sd_protanopes;	
				$Bd = -0.000365294*$Ld_protanopes - 0.00412163*$Md_protanopes + 0.693513*$Sd_protanopes;
 
 
				//Retourne un identifiant de couleur, représentant la couleur composée avec les couleurs RGB. 
				$red = imagecolorallocate($img, $Rd, $Gd, $Bd);
 
				//Dessine un pixel aux coordonnées spécifiées. 
				imagesetpixel($img,$i,$j,$red);
			}	
		}
 
		//fclose($imgname);	
 
		//Affiche l'image 
 
		header('Content-Type: image/jpeg');
		imagejpeg($img);  
		imagedestroy($img);
?>
J'arrive à afficher l'image sans modification mais je n'arrive pas à modifier les couleurs de cette image.

Je vous remercie de votre aide .