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] PNG dynamique


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 70
    Par défaut [GD] PNG dynamique
    Salut à tous

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <?php
     
     /***************************************************************************
     *  Génère une image de signature, avec un texte tiré aléatoirement         *
     *   et 2 smileys                                                           *
     ***************************************************************************/
     
    //Variables de personnalisation
    	$taille_texte = 3;				#taille du texte
    	/* smileys aléatoires */
    	$aleasmileys = array(				#smileys PNG de 32*32 px
    			"smile.png",
    			"smile2.png",
    			"smile3.png",
    			"smile4.png",
    			"smile5.png",
    			"smile6.png",
    	); 
    	$color_txt1 = array("150", "0", "255");		# couleur texte 1
    	$color_txt2 = array("255", "0", "0");		# couleur texte 2
    	$color_border = array("255", "0", "0");		# couleur de bordure
    	$color_backgrnd =  array("10", "10", "10");	# couleur de fond
     
    	/* textes aléatoires */
    	$aleatextes = array(
    			"La prediction est difficile, surtout lorsqu'elle concerne l'avenir !",
    			"Skinhead aux cheveux longs, c'est l'émancipation !",
    			"Tout ce que je sais, c'est a mon ignorance que je le dois.",
    			"A vaincre sans mérite, on triomphe quand même.",
    			"Faut pas vendre la peau de l'ours. Non, faut pas.",
    			"Don't keep them steal your dreams ...",
    			"C'est au pied du mur ... qu'on voit le mieux le mur.",
    	);
    	/* Pseudo affiché en bas à droite */
    	$pseudo = "c@c";
    //Fin des variables
     
    // Initialisation du générateur aléatoire
    	function make_seed() {
    	// initialise avec les microsecondes
    		list($usec, $sec) = explode(' ', microtime());
    		return (float) $sec + ((float) $usec * 100000);
    	}
    srand(make_seed());  // Inutile depuis PHP 4.2.0, mais on sait jamais ... les hébergeurs ont-ils tous PHP >= 4.2.0 ?
     
    // Sélection aléatoire du texte
    $num = rand(0, (count($aleatextes)-1));
    $texte = $aleatextes[$num];
     
    // Sélection aléatoire des 2 smileys
    $num1 = rand(0, (count($aleasmileys)-1));
    $smiley = $aleasmileys[$num1];
    $num2 = rand(0, (count($aleasmileys)-1));
    // Ne pas avoir les deux mêmes smileys ...
    while($num2 == $num1)
    {
    	$num2 = rand(0, (count($aleasmileys)-1));
    }
    $smiley2 = $aleasmileys[$num2];
     
    // Construction de l'image
     
    	// Type MIME
    	header ("Content-type: image/png");
    	// Pas de cache
    	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");             	// Date du passé
      	header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 	// toujours modifié
      	header("Cache-Control: no-cache, must-revalidate");           	// HTTP/1.1
      	header("Pragma: no-cache");
     
    	// Dimensions de l'image :
    	$img_width = 600;
    	$img_height = 60;
     
    	//Créer l'image
    	$im = @imagecreate($img_width, $img_height) or die ("Impossible d'initialiser la librairie GD");
     
    	// Fond et couleur de texte
    	imagecolorallocate($im, $color_backgrnd[0], $color_backgrnd[1], $color_backgrnd[2]);  	//     background  
    	$color_border = imagecolorallocate($im, $color_border[0], $color_border[1], $color_border[2]);  
    	imageline($im, 0, 0, $img_width, 0, $color_border);    					//     Bordure horizontale supérieure
    	imageline($im, 0, 0, 0, $img_height, $color_border);	   				//     Bordure verticale de gauche
    	imageline($im, 0, $img_height-1, $img_width-1, $img_height-1, $color_border); 		//     Bordure horizontale inférieure 
    	imageline($im, $img_width-1, 0, $img_width-1, $img_height-1, $color_border); 		//     Bordure verticale de droite
     
    	imagecopy($im, imagecreatefrompng($smiley), 9, 9, 0, 0, 32, 32); 			// Premier smiley
    	imagecopy($im, imagecreatefrompng($smiley2), $img_width-(32+9), 9, 0, 0, 32, 32); 	// Deuxième smiley
     
    	// Texte
    	imagestring ($im, $taille_texte, 60, 15,  $texte, imagecolorallocate($im, $color_txt1[0], $color_txt1[1], $color_txt1[2]));
    	imagestring ($im, $taille_texte, $img_width - 110, $img_height - 25, $pseudo, imagecolorallocate($im, $color_txt2[0], $color_txt2[1], $color_txt2[2]));
     
    	// Création du PNG
    	imagepng ($im);
    ?>
    J ai trouvé ce code mais je souhaiterai que ça me creer physiquement le fichier image dans un dossier est ce possible

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 70
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.anemora.com/ban/jujubois.png


    en fait j essai de faire comme le lien au dessus ! kan on actualise le score se met a jour

    merci de votre aide

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 70
    Par défaut
    bon j ai avancé ^^ en fait plus besoin de creer d image ^^

    mais il me reste du question

    vici mon lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.monsite.com/dynsig.php?pseudo=isamufab
    et je souhaiterai un lien comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.monsite.com/isamufab.png

    est ce possible ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 70
    Par défaut
    Resolu avec un .htaccess

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine On 
    RewriteRule ^([0-9A-Za-z_é]+)\.png dynsig.php?pseudo=$1 [L]

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 70
    Par défaut
    Est il possible d utilisé une image de plus de 256 coulleur et avec la transparence ? car là ça ne marche pas


    merci

  6. #6
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    hmmm pour les plus de 256 couleurs il faut utilise imagetruecolor() à la place de imagecreate() il me semble

    Pour le transparence, je sais pas trop :s

Discussions similaires

  1. [Python 2.X] Chargement dynamique d'une image png dans un wx.StaticBitmap
    Par naute dans le forum wxPython
    Réponses: 4
    Dernier message: 12/09/2018, 13h01
  2. Réponses: 0
    Dernier message: 11/10/2008, 14h31
  3. [Images] Génération d'image PNG dynamique
    Par Jehuty dans le forum Bibliothèques et frameworks
    Réponses: 46
    Dernier message: 01/02/2006, 14h58
  4. Réponses: 4
    Dernier message: 13/05/2002, 16h43
  5. repertoire temp dynamique
    Par killpilot dans le forum C
    Réponses: 2
    Dernier message: 26/04/2002, 16h19

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