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 générée par PHP sur disque dur


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Points : 45
    Points
    45
    Par défaut [GD] Enregistrer une image générée par PHP sur disque dur
    Bonjour à tous et à toutes,

    Depuis ce matin je cherche comment enregistrer une image (code barre) générée par GD2 dans un répertoire du serveur. Les bouts de code trouvés sur les forums ne fonctionnement pas !

    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $image=imagegif($im); //création de l'image et copie dans  variable $image
    imagedestroy($im);     //destruction de image
    $fichier = fopen("image.gif", "w");  //fichier destination
    fwrite($fichier, $image);  //enregistrement
    fclose($fichier);  //fermeture
    Après avoir éxécuté le code, le fichier "image.gif" est créé sur le disque mais il est vide !
    Par contre, mon image s'affiche correctement dans le navigateur. Pourriez vous me donner un coup de main s'il vous plaît.

    D'avance merci,
    Alex01

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    Plus simple ...

    http://fr3.php.net/imagegif

    Si tu precises le "String filename" dans ta fonction imagegif, ca te l'enregistre.. bien pratique..

    Exemple de code GD2 + Cache :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php
     
    //On envoie du PNG au navigateur et non pas du PHP 
    header ("Content-type: image/png");
     
    // initialisation des variables
    $texte = stripslashes($_GET["texte"]);
     
    $texte_encode = urlencode($texte);
    $image_path = "/www/html/images_dyn/CACHE_png1/".$texte_encode.".png";
     
        if (file_exists($image_path)) {
            readfile($image_path);
        }
        else
        {
     
            // Définission de la variable d'environnement pour GD
            putenv('GDFONTPATH=' . realpath('.'));
     
            //Definition des variables internes
            $width = 585;
            $height = 60;
            $font = 'MaiandraGDDemiBold';
            $fontsize = 30;
     
            // Creation de l'image et affectations des couleurs
            $im = @imagecreate (100, 50) or die ("Impossible d'initialiser la bibliothèque GD");
            $im = @imagecreatefrompng ("../images/base_titre_rub.png") or die ("Impossible d'initialiser la bibliothèque GD");
            $background_color = imagecolorallocate ($im, 255, 255, 255);
            $text_color = imagecolorallocate ($im, 107, 65, 107);
     
     
            //Calcul des coordonnees pour centrer le texte
            $box = ImageTTFBBox($fontsize, 0, $font, $texte);
            $x = ($width - ($box[2] - $box[0])) / 2;
            $y = ($height - ($box[1] - $box[7])) / 2;
            $y -= $box[7];
     
            // On ecrit le texte, et on ferme.. 
            ImageTTFText ($im, $fontsize, 0, $x, $y, $text_color, $font, $texte);
            //imagepng ($im);
            imagepng ($im, $image_path);
            imagedestroy($im);
        };
     
     
     
    ?>
    La ligne interessante est "imagepng ($im, $image_path);" qui enregistre l'image sur le disque.. chez moi ca marche tres bien

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Points : 45
    Points
    45
    Par défaut
    Super ça fonctionne !

    Merci beaucoup de ton aide.

    Bien cordialement
    Alex01

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 18
    Dernier message: 08/03/2013, 15h25
  2. [GD] Manipuler une image générée par php
    Par madvic dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 01/07/2008, 22h04
  3. [Image] Enregistrer une image générée par un script PHP
    Par navis84 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 22/05/2006, 17h35
  4. [Image]Insérer une image générée par PHP dans un formulaire (anti-robot)
    Par dark_vidor dans le forum Bibliothèques et frameworks
    Réponses: 14
    Dernier message: 29/04/2006, 22h48
  5. [Image]Déplacer/enregistrer une image crée par PHP ?
    Par renaud26 dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 17/03/2006, 15h00

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