mars073 Posté(e) April 9, 2014 Signaler Share Posté(e) April 9, 2014 Bonjour all, Je vais vous expliquer comment générer une image en php. je vais partir directement sur un exemple assez complexe vous allons nous baser sur l'image suivante (j'avais bien commencé mais bon j'avais la flemme donc j'ai fais un arbre vite fait avec un quadrillage dégeu au dessus trop chiant dessiner à la souris rip mon stylet et un petit personnage très mystérieux et donc dans cet exemple nous allons positionner un personnage sur le quadrillage le coté le plus à gauche est le point d'origine (0, 0). contexte: vous avez votre bonhomme à déplacer sur le quadrillage grace à une variable $x et $y que l'on dans l'url ($_GET) et vous devez conserver la transparence des 2 images. <?php $x = $y = 0; // on initialise la variable $x et $y à zéro // on test l'existant de ?x et ?y dans l'url et si ils sont compris entre 0 et 6 if (isset($_GET['x'])&&is_numeric($_GET['x'])&& $_GET['x']>=0&&$_GET['x']<=6) $x = $_GET['x']; if (isset($_GET['y'])&&is_numeric($_GET['y'])&& $_GET['y']>=0&&$_GET['y']<=6) $y = $_GET['y']; // on spécifie le type MIME, c'est à dire que le script php va se faire passer pour un autre type de fichier si vous ne mettez pas ça en accédant à la page vous aurez exactement le même résultat que lorsque voys ouvrez l'image avec bloc note header('Content-Type: image/png'); $map = imagecreatefrompng("island_air.png"); // on charge l'île volante $char = imagecreatefrompng("char.png"); // on charge le bonhomme mystèrieux // on copie l'image du petit bonhomme et on la colle sur le terrain avec la position relative imagecopy($map, $char, (210 + ($x * 12) + ($y * 13)), 140 + ($y * 14) - ($x * 10), 0, 0, 23, 43); // on conserve le canal alpha, c'est à dire la transparence imagealphablending($map, false); imagesavealpha($map, true); // on fait le rendu de l'image dans le format MIME imagepng($map); // on supprime les calques que l'on a fait (pour vider la mémoire) imagedestroy($map); imagedestroy($char); ?> donc en récapitulatif vous devez: -choisir le type MIME (format de rendu) [liste utile] -créer à calque à partir d'une image même si elle est distante (ex: imagecreatefromjpeg("http://picture.com/A0001.jpg")) ou vous pouvez créer un calque vide aux dimensions désirées (exemple: imagecreate(600, 400), pour créer une image de 600px de large et 400px de haut). -faire un rendu dans le format que vous aviez choisis (ex: imagejpeg($image)) si vous désirez enregistrer votre rendu vous pouvez le faire directement par exemple en rendu jpg ou jpeg vous ajoutez simplement un paramètre avec le nom de destination exemple: <?php imagejpeg($image, "rendu.jpg"); // vous pouvez aussi choisir la qualité en ajoutant un troisième paramètre de 0 à 100 ou de 0 à 75 selon le format imagejpeg($image, "rendu.jpg", 45); // vous pouvez aussi choisir le rendu sans enregistrer en remplacant la destination par NULL: imagejpeg($image, NULL, 45); ?> > documentation php si vous avez eu du mal à comprendre la syntaxe de image copie de vous invite à Cliquer ici. Si vous desiez vous pouvez rendre moins mystérieux le bonhomme on lui mettant un nom au dessus de sa tête avec la fonction imagestring(); ça vous fera un petit exercice Bonne programmation à tous! Cordialement, Mars073 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Azad Posté(e) April 16, 2014 Signaler Share Posté(e) April 16, 2014 J'avais raté ce tutoriel, puis je l'ai vu en lisant ton tutoriel sur le captcha. J'ai bien aimé la précision sur le bonhomme "très mystérieux", bon boulot sinon. La génération d'image en PHP est très pratique pour effectuer des modélisations de courbes (même si le C++ le gère mieux, c'est à mon sens plus simple -et bordélique- en PHP). +1 Rep. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.