Aller directement au contenu
  • Catégories
  • Récent
  • Mots-clés
  • Populaire
  • Web
  • Utilisateurs
  • Groupes
Habillages
  • Clair
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Sombre
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Défaut (Aucun habillage)
  • Aucun habillage
Réduire
Melinyel

Melinyel

  1. Accueil
  2. Programmation
  3. Développement web
  4. PHP
  5. Gestion d'image

Gestion d'image

Planifié Épinglé Verrouillé Déplacé PHP
2 Messages 2 Publieurs 3.7k Vues
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • mars073M Hors-ligne
    mars073M Hors-ligne
    mars073
    a écrit sur dernière édition par
    #1

    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 😞
    ![island_air-44f87bd.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://img102.xooimage.com/files/1/6/a/island_air-44f87bd.png)
    et un petit personnage très mystérieux
    ![char-44f8849.png](<base_url>/applications/sslimageproxy/interface/image.php?url=http://img107.xooimage.com/files/1/b/a/char-44f8849.png)

    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

    votes-45296e7.png

    Aide à l'apprentissage et la réalisation pour des graphismes, des programmes, des sites ou autres.
    signature.png
    Signature aléatoire, proposez vous aussi une signature ici!

    1 réponse Dernière réponse
    1
    • AzadA Hors-ligne
      AzadA Hors-ligne
      Azad
      a écrit sur dernière édition par
      #2

      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.

      Administrateur du forum.

      Contactez-moi par message privé ou par mail.

      1 réponse Dernière réponse
      0

      Bonjour ! Vous semblez intéressé par cette conversation, mais vous n’avez pas encore de compte.

      Marre de refaire défiler les mêmes messages ? Créez un compte pour retrouver votre position, recevoir des notifications des nouvelles réponses, sauvegarder vos favoris et voter pour les messages que vous appréciez.

      Grâce à votre participation, ce message peut devenir encore meilleur 💗

      S'inscrire Se connecter
      Répondre
      • Répondre à l'aide d'un nouveau sujet
      Se connecter pour répondre
      • Du plus ancien au plus récent
      • Du plus récent au plus ancien
      • Les plus votés


      • Se connecter

      • Connectez-vous ou inscrivez-vous pour faire une recherche.
      Powered by NodeBB Contributors
      • Premier message
        Dernier message
      0
      • Catégories
      • Récent
      • Mots-clés
      • Populaire
      • Web
      • Utilisateurs
      • Groupes