IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[GD] Générateur de texte sur image


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [GD] Générateur de texte sur image
    Bonjour,

    Je cherche à créer un générateur assez simple afin de générer du texte sur une image.

    Un peu comme sur ce site : http://www.chez-youkette.com/signatures/index.php

    Voici ce que je souhaiterai en détails :

    - Sélectionner une image de fond parmi 5 modèles (que j'ai créés).
    - Ajouter son texte à un endroit précis sur l'image (pas besoin de modifier la police, taille, etc.).
    - Sélectionner une icone parmi 3 exemples qui viendra s'afficher en haut à droite de l'image.
    - Pour terminer, afficher l'image au format .jpg

    Mon hébergeur web possède déjà la bibliothèque GD d'activé.

    Pour le moment j'arrive à afficher du texte sur l'image mais impossible de la récupérer au format .jpg :

    Page index.html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form method="post" action="image.php">
    Texte: <input type="text" name="text" value="texte">
    <input type="submit" value="Submit">
    </form>
    Page image.php :

    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
    <?php
     
      //Set the Content Type
      header('Content-type: image/jpeg');
     
      // Create Image From Existing File
      $image = imagecreatefromjpeg('exemple.jpg');
     
      // Allocate A Color For The Text
      $white = imagecolorallocate($image, 255, 255, 255);
     
      // Set Path to Font File
      $font_path = 'font/arial.ttf';
     
      // Set Text to Be Printed On Image
      $text = $_POST['text'];
     
      // Print Text On Image
      imagettftext($image, 25, 0, 75, 300, $white, $font_path, $text);
     
      // Send Image to Browser
      imagejpeg($image);
     
    ?>
    J'ai lu quelque part qu'il fallait ajouter ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <img src="image.php" />.
    Merci d'avance à ceux qui pourront m'aider.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 690
    Points : 20 211
    Points
    20 211
    Par défaut
    Deux solutions :

    imagejpeg() peut prendre un second paramètre qui est le fichier de destination.

    Donc quelque chose comme imagejpeg($image,'/images/monimage.jpg'); te permettra de sauvegarder le fichier jpg.

    L'autre solution est effectivement de ne pas sauvegarder l'image sur le disque et de l'afficher directement, ce que tu sembles faire.
    Avec l'entête header('Content-type: image/jpeg'); tu préviens que le contenu va être une image. Donc au submit de ton formulaire ton navigateur affiche l'image.

    Pour la placer dans une balise image il faut effectivement placer dans script dans une balise image , par contre il faudra lui passer les paramètres via GET.

    Si tu remplace $text = $_POST['text']; par $text = $_GET['text'];Tu dois pouvoir sur n'importe quel page faire : <img src="image.php?text=montexte" />
    C'est en général cette solution qui est proposée sur le site qui génère des images perso , de type signature.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En effet, ce que je cherche à faire se rapproche de la seconde solution.
    J'ai fais la modif, et si je vais sur la page /image.php?text=montexte , j'ai bien l'image au format .jpg merci

    On sort peut être un peu du sujet, mais j'aimerai modifier le formulaire (index.html) afin que quand on clique sur le bouton "submit" l'image modifiée s'affiche en dessous.
    Actuellement le bouton renvoie toujours vers la page "image.php" .

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Pour faire plus simple, j'aimerai que le script php s’exécute en bas de la page une fois qu'on a cliqué sur le bouton "submit".
    Et donc que l'image apparaisse directement sous le formulaire.

    J'ai testé ce bout de code, sans résultat :/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php if($_GET['submit'])
    {
            include('image.php');
    }
    ?>

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 690
    Points : 20 211
    Points
    20 211
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if($_GET['submit'])
    {
        echo '<img src="image.php" />';
    }
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Effectivement j ai exactement le même problème. Et impossible d inclure le code qui permet de générer l image sur la page où se situe le formulaire. Pas compatible apparemment. (du coup je ne peux même pas y integrer le formulaire

    Des que je rentre le moindre langage html dans ce 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
    <?php
     
     
     
    header('Content-Type: image/png');
    // Désactivation des magic_quotes_gpc
    ini_set('magic_quotes_gpc', 0);
     
    $pseudo = $_GET['pseudo'];
     
     
    $src1 = imagecreatefromstring(file_get_contents("render.png"));
    $dest = imagecreatefromstring(file_get_contents("fond.png"));
     
    // Set the brush
    imagesetbrush($dest, $src1);
    // Draw a couple of brushes, each overlaying each
    imageline($dest, 100, 70, 100, 70, IMG_COLOR_BRUSHED);
     
    $src2 = imagecreatefromstring(file_get_contents("render.png"));
    $dest2 = $dest;
     
    // Set the brush
    imagesetbrush($dest2, $src2);
    // Draw a couple of brushes, each overlaying each
    imageline($dest2, 200, 70 , 200, 70 , IMG_COLOR_BRUSHED);
     
     
    $blanc = imagecolorallocate($dest, 255, 255, 255);
    imagestring($dest2, 4, 35, 15, "$pseudo", $blanc);
    imagepng($dest2);
    imagedestroy($dest);
    imagedestroy($dest2);
    ?>


    ca m affiche direct une erreur. J' essaye d inclure la page "image.php" dans la page "index.php" à laide d un include voir d un require (je suis en train d essayer de comprendre comment ca marche) mais ca n a pas l air de fonctionner non plus.

    Comment envoyer la variable obtenue par le biais du fichier index.php au fichier image.php tout en restant sur la page index.php ?

    Afin d afficher l image générée en image.php sur la page index.php grace à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="image.php" />
    ??

Discussions similaires

  1. [GD] Générateur de texte sur une image
    Par tibo2nantes dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 03/07/2008, 18h10
  2. Comment faire des zones de texte sur image
    Par Myogtha dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 12/03/2007, 16h27
  3. Texte sur image
    Par medchennani dans le forum Delphi
    Réponses: 5
    Dernier message: 05/03/2007, 14h06
  4. [ImageMagick] Insérer du texte sur image uploadée
    Par fabien14 dans le forum Bibliothèques et frameworks
    Réponses: 16
    Dernier message: 01/12/2006, 22h03
  5. fonctions d'image : texte sur image
    Par guy2004 dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2006, 10h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo