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] Enregistrer une image créée [Fait]


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut [GD] Enregistrer une image créée
    Bonjour.

    J'essai de créer un générateur image/texte (en l'occurence ici de tactique de football). L'ensemble fonctionne seulement il me manque une*(ou plusieurs) fonction que je ne maitrise pas.

    Car je souhaiterais que l'image crée puisse être utilisé ensuite directement sur un forum.

    Mais ce que j'ai codé ne fait pour l'instant qu'afficher basiquement "l'imagephp" et n'est donc pas réutilisable.

    J'aimerais qu'une véritable image (png, jpg) se créer (dans un fichier temporaire de mon serveur ?) afin que l'utilisateur puisse réutiliser l'image automatiquement (sans faire de copie d'écran+paint )

    Je vous donne le (pauvre) code que j'ai fait jusqu'a maintenant, j'espere que vous saurez le complèter :

    Page de l'interface :
    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
    <html>
    <head>
    <title>Notre page de test</title>
    </head>
     
    <body>
    Sélectionner le onze titulaire :<br />
    <form action="./mon_image.php" method="get">
    1 - Gardien de But : <input type="text" name="Position1"><br />
    2 - Défenseur latéral (D) : <input type="text" name="Position2"><br />
    3 - Défenseur latéral (G) : <input type="text" name="Position3"><br />
    4 - Défenseur Central (G) ou Libéro : <input type="text" name="Position4"><br />
    5 - Défenseur central (D) ou Stoppeur : <input type="text" name="Position5"><br />
    6 - Milieu défensif : <input type="text" name="Position6"><br />
    7 - Milieu relayeur (D) : <input type="text" name="Position7"><br />
    8 - Milieu relayeur (G) : <input type="text" name="Position8"><br />
    9 - Avant-centre : <input type="text" name="Position9"><br />
    10 - Meneur de jeu : <input type="text" name="Position10"><br />
    11 - Attaquant de complément : <input type="text" name="Position11"><br />
     
     
    <input type="submit" value="Voir">
    </form>
    </body>
     
    </html>
    Page de génération de l'image :

    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
    <?php
     
    if (isset($_GET['Position1']) && isset($_GET['Position2']) && isset($_GET['Position3']) && isset($_GET['Position4']) && isset($_GET['Position5']) && isset($_GET['Position6'])
     && isset($_GET['Position7']) && isset($_GET['Position8']) && isset($_GET['Position9']) && isset($_GET['Position10']) && isset($_GET['Position11'])) { 
     
     
    header ("Content-type: image/png");  
    $image = imagecreatefrompng("442losange.png");  
     
    imagestring($image, 3, 25, 199, $_GET['Position1'], $blanc);
    imagestring($image, 3, 130, 357, $_GET['Position2'], $blanc);
    imagestring($image, 3, 130, 55, $_GET['Position3'], $blanc);
    imagestring($image, 3, 130, 156, $_GET['Position4'], $blanc);
    imagestring($image, 3, 130, 255, $_GET['Position5'], $blanc);
    imagestring($image, 3, 232, 206, $_GET['Position6'], $blanc);
    imagestring($image, 3, 317, 103, $_GET['Position7'], $blanc);
    imagestring($image, 3, 317, 303, $_GET['Position8'], $blanc);
    imagestring($image, 3, 511, 256, $_GET['Position9'], $blanc);
    imagestring($image, 3, 406, 206, $_GET['Position10'], $blanc);
    imagestring($image, 3, 511, 156, $_GET['Position11'], $blanc);
     
     
    $couleur_fond = ImageColorAllocate ($image, 255, 0, 0);  
     
     
    imagepng($image);
    imagedestroy($image);
     
     }  
     
    else {  
    echo 'Les variables du formulaire ne sont pas déclarées.';  
    }  
     
     ?>

    Je vous remercie beaucoup d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 715
    Par défaut
    l'enregistrement sous forme de fichier est expliqué dans la documentation de la fonction :
    http://php.net/imagepng
    il suffit de rajouter un 2e paramètre à la fonction

  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut
    Concrêtement, je met quoi et ou ?

    Il n'y a rien d'expliqué dans la page que tu me donnes.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    bool imagepng ( resource $image [, string $filename [, int $quality [, int $filters ]]] )

    Liste de paramètres

    filename

    Le chemin vers le fichier de sauvegarde. S'il n'est pas défini ou s'il vaut NULL, le flux brut de l'image sera affiché directement.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut
    Faire un quote de la page que j'ai déjà lu ne me fera pas mieux comprendre

    Est-ce si compliqué de m'inscrire directement ce que je doit mettre ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce si compliqué de m'inscrire directement ce que je doit mettre ?
    On peut aussi te faire tout ton site si tu veux.
    Je n'ai pas fait une simple citation de la page, je t'ai mis en rouge l'element que tu dois remplir puisqu'apparemment tu n'avais pas compris.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre averti
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut
    Pourrais-je avoir la ligne de code que je recherche s'il te plait ?
    Je suis sur que c'est moins long que ton dernier message

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ah mais ce n'est pas une question de temps.
    Au contraire !
    Moi j'ai tout le temps qu'il faut pour détailler, commenter, expliquer ce que tu n'as pas compris.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre averti
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut
    Dans la ligne, il y a des parenthèse, des dollars, des int, des string........
    C'est du charabia !

    Je ne comprends une fonction que lorsqu'elle est en situation (et encore pas toujours), pas lorsqu'elle est présenté de cette manière ou tout est craché d'un coup sans une once d'explication.
    Je ne connais pas le protocole de présentation de ce site alors je ne sait même pas ce qu'il faut concrètement garder ou jeter.
    Je suis un pseudo musicien qui ne connait pas le solfège et qui essaie de se débrouiller au son !

    Donc, j'en reviens au même pour la dernière fois.

    Serait-il possible d'avoir une ligne de code ? que ce soit celle que je demande ou un exemple pratique ?

  10. #10
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 715
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 715
    Par défaut
    il y a des exemples avec la création d'un fichier un peu plus bas sur la page comme là par exemple :
    http://php.net/imagepng/#64061

  11. #11
    Membre averti
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut
    Ah voila merci beaucoup, donc si j'ai bien compris, il fallait juste que je change :
    imagepng($image);
    par :
    imagepng($image, 'images/monimage.png');

    En tout cas cela marche, l'image modifié se créer dans le répertoire images de mon ftp.
    Enfin, après avoir réglé un problem de CHMOD 777.

    Ce qui m'amène l'étape suivante ou je bloque encore.

    J'ai deux problème :
    - Si je crée une autre image, elle remplace l'ancienne en utilisant (logiquement) le même nom, a savoir "monimage.png"
    - Une fois que l'utilisateur a crée l'image, il ne reçoit rien

    Je souhaiterais donc que le nom de l'image soit relatif/aléatoire afin de permettre d'en sauver plusieurs sans que l'ancienne ecrase l'autre. (mettre des numéros derrière un nom de base "monimage2,3,4,5,6,7.png).

    Ensuite, une fois cette image au nom crée, je souhaiterais que l'adresse de cette image s'affiche automatiquement pour l'utilisateur, afin qu'il puisse la reutiliser.

    Pourrait-on m'aiguiller pour cela aussi ?
    Merci beaucoup

  12. #12
    Membre averti
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut
    J'ai résolu une partie du problème. Désormais les images crée disposent d'un nom basé sur la date et l'heure de la création. (uniqid)


    Il me reste toutefois un dernier probleme. Comme je souhaite que l'utilisateur puisse reutiliser l'image créé, je souhaiterais qu'après la création, l'adresse de l'image puisse apparaitre automatiquement.

    Il suffirait ainsi a l'utilisateur de copier/coller l'adresse pour la reutiliser ailleurs (site/forum).

    C'est visiblement mon dernier problème, j'espère que vus pourrez m'aider.
    Merci beaucoup

Discussions similaires

  1. ENREGISTRER UNE IMAGE OU UN FICHIER .DOC
    Par manudja dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/08/2005, 14h32
  2. enregistrer une image
    Par meli0207 dans le forum MFC
    Réponses: 35
    Dernier message: 12/07/2005, 10h00
  3. [GLScene] Comment enregistrer une image au format TGA
    Par Invité dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 27/05/2005, 16h12
  4. Enregistrer une image
    Par N@sH dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 04/05/2005, 11h07
  5. enregistrer une image et un identifiant
    Par dosach dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 18/03/2004, 18h18

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