Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > Images > GD
GD Forum d'entraide pour l'extension GD permettant de manipuler des images en PHP. Avant de poster -> tutoriels GD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/05/2006, 09h53   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2002
Messages : 63
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 63
Points : 14
Points : 14
Par défaut 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 :
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
Alex01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 10h29   #2
Membre éclairé
 
Inscription : janvier 2004
Messages : 424
Détails du profil
Informations personnelles :
Âge : 39
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 424
Points : 311
Points : 311
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 :
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
zevince est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2006, 11h16   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2002
Messages : 63
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 63
Points : 14
Points : 14
Super ça fonctionne !

Merci beaucoup de ton aide.

Bien cordialement
Alex01
Alex01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h11.


 
 
 
 
Partenaires

Hébergement Web