Bonjour à tous,
Je suis entrain de réaliser un petit formulaire me permettant de créer des images pour les menus en PHP. Cependant je comprends pas pourquoi ça ne m'affiche pas l'image étant donner que j'ai pas fais un script bien compliquer...
J'y suis arrivé en exécutant directement mon fichier PHP qui génère l'image, là j'ai l'impression que c'est le faites de le faire via un formulaire en passant par le $.ajax en jQuery...J'ai l'impression que le problème viens de l'affichage de l'image PHP dans ma page HTML. Mais je ne vois pas du tout comme faire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <fieldset style="width: 40%;"> <legend>Formulaire</legend> <form method="post" action=""> <label>Largeur :</label><input type="text" name="largeur"/><br /> <label>Hauteur :</label><input type="text" name="hauteur" /><br /> <label>Texte : </label><input type="text" name="texte"/><br /> <label>Couleur Fond : </label><input class="myColorPicker" name="couleurf" type="text" /><br /> <label>Couleur texte : </label><input class="myColorPicker" name="couleurt" type="text" /><br /> <input type="submit" value="Aperçus"/> </form> </fieldset> <div id="resultat"></div>
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 $(document).ready( function() { $('input.myColorPicker').myColorPicker(); function convertirDecimal(code){ var tab = new Array(3); tab["r"] = parseInt( code.substr(1,2), 16 ) ; tab["g"] = parseInt( code.substr(3,2), 16 ) ; tab["b"] = parseInt( code.substr(5,2), 16 ) ; return tab ; } $("form").submit( function(){ var texte = $("input[name=texte]").val(); var couleurf = $("input[name=couleurf]").val(); var couleurt = $("input[name=couleurt]").val(); var couleurFond = convertirDecimal(couleurf)['r']+","+convertirDecimal(couleurf)['g']+","+convertirDecimal(couleurf)['b'] ; var couleurTexte = convertirDecimal(couleurt)['r']+","+convertirDecimal(couleurt)['g']+","+convertirDecimal(couleurt)['b'] ; var largeur = $("input[name=largeur]").val() ; var hauteur = $("input[name=hauteur]").val() ; $.ajax({ type: "POST", url: "traitement.php", data: "texte="+texte+"&couleurFond="+couleurFond+"&couleurTexte="+couleurTexte+"&largeur="+largeur+"&hauteur="+hauteur, success: function(data){ $("div#resultat").html("<img src=\""+data+"\" />"); } }); return false; }); });
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 <?php header ("Content-type: image/png"); $texte = $_POST['texte']; $couleurFond = explode(",", $_POST['couleurFond'] ); $couleurTexte = $_POST['couleurTexte']; $largeur = $_POST['largeur']; $hauteur = $_POST['hauteur'] ; $texteBox = imagettfbbox( 4, 0, "arial.ttf", $texte); $longueurTexte = abs( $texteBox[0] ) + abs ( $texteBox[2] ) ; $hauteurTexte = abs( $texteBox[7] ) - abs( $texteBox[1] ) ; $image = imagecreatetruecolor($largeur, $hauteur); imagesavealpha($image, true); $couleurAlpha = imagecolorallocatealpha($image, 0, 0, 0, 127); imagefill($image, 0, 0, $couleurAlpha); $colorFond = imagecolorallocate($image, $couleurFond[0], $couleurFond[1], $couleurFond[2]); imagefilledrectangle($image, 0, 0, $largeur, $hauteur, $colorFond ); echo imagepng($image); ?>
Partager