Images GD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Images GD

image gd

par jlm1 » 20 sept. 2005, 22:58

Bonjour,
Je bouquine le forum à la recherche d'info.
Pour moi, il est possible d'insérer des requètes SQL dans un script PHP servant à générer une image et cela fonctionne trsè bien.
Il est tard, et je n'ai pas tout bien lu. Mais essais
$couleur_fond = ImageColorAllocate ($img, $menu_fond1_rouge, $menu_fond1_vert, $menu_fond1_bleu);
par
$couleur_fond = ImageColorAllocate ($img, $ligne['menu_fond1_rouge'], $ligne['menu_fond1_vert'], $ligne['menu_fond1_bleu']);
...
J'ai pas essayé à voir.

PS: je sais "résolu", mais la méthode me choque!
A+
JLM

par flanders » 12 sept. 2005, 21:05

Bonsoir,

J'ai trouvé la solution.
En fait, je ne peux pas utiliser directement la base mysql dans le fichier qui va générer l'image. Il faut que je transfert les infos par une URL.

Je dois insérer une image
echo "<img src='arc.php?menu_fond1_rouge=$menu_fond1_rouge&menu_fond1_vert=$menu_fond1_vert&menu_fond1_bleu=$menu_fond1_bleu'>";
puis utiliser $_GET['string'] dans le fichier qui me sert d'image.

Donc voilà c résolu.

@=

par flanders » 11 sept. 2005, 11:11

Tu fais un :
$menu_fond1_rouge = $ligne['menu_fond1_rouge'];
puis un echo $menu_fond1_rouge;
C'est exactement cela.
et tu as bien la valeur numérique (c'est un int ?)
J'ai vérifié cela et oui, la chaîne est initialisée en INT.

J'ai mis la structure de la table et l'enregistrement:

Code : Tout sélectionner

CREATE TABLE `menu_vga` ( `menu_fond1_rouge` int(3) NOT NULL default '0', `menu_fond1_vert` int(3) NOT NULL default '0', `menu_fond1_bleu` int(3) NOT NULL default '0', `menu_fond2_rouge` int(3) NOT NULL default '0', `menu_fond2_vert` int(3) NOT NULL default '0', `menu_fond2_bleu` int(3) NOT NULL default '0', `menu_bord_rouge` int(3) NOT NULL default '0', `menu_bord_vert` int(3) NOT NULL default '0', `menu_bord_bleu` int(3) NOT NULL default '0', PRIMARY KEY (`menu_fond1_rouge`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; -- -- Contenu de la table `menu_vga` -- INSERT INTO `menu_vga` VALUES (255, 0, 0, 255, 204, 102, 255, 255, 153);

par progfou » 11 sept. 2005, 11:02

La couleur s'affiche correctement, c'est à dire ?
Tu fais un :
$menu_fond1_rouge = $ligne['menu_fond1_rouge'];
puis un echo $menu_fond1_rouge; et tu as bien la valeur numérique (c'est un int ?) ?

Images GD

par flanders » 11 sept. 2005, 10:48

Bonjour,

je viens vers vous car j'ai un petit pb avec les images GD.
Je souhaite créer des images dont je puisse modifier les couleurs, grâce à des informations stockées dans une table SQL.

voici le script:
<?php

header("Content-type: image/png");



include ("../Includes/include.php");




mysql_connect($hote,$login,$pass) or die("Impossible de se connecter à la base de données");
mysql_select_db("$bd") or die("Impossible de se connecter à la base de données");

$query= "SELECT * FROM $table12";
$resultat= mysql_query ($query);
$ligne=mysql_fetch_array($resultat);


$menu_fond1_rouge = $ligne['menu_fond1_rouge'];
$menu_fond1_vert = $ligne['menu_fond1_vert'];
$menu_fond1_bleu = $ligne['menu_fond1_bleu'];

$menu_fond2_rouge = $ligne['menu_fond2_rouge'];
$menu_fond2_vert = $ligne['menu_fond2_vert'];
$menu_fond2_bleu = $ligne['menu_fond2_bleu'];

$menu_bord_rouge = $ligne['menu_bord_rouge'];
$menu_bord_vert = $ligne['menu_bord_vert'];
$menu_bord_bleu = $ligne['menu_bord_bleu'];



// Création d'une image 200*200

$img = imagecreate(200, 200);

$couleur_fond = ImageColorAllocate ($img, $menu_fond1_rouge, $menu_fond1_vert, $menu_fond1_bleu);



// Allocation de couleurs

$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);


// fond intérieur

imagefilledrectangle($img, 0, 30, 199,170, $white);
imagefilledrectangle($img, 30, 0, 170,30, $white);
imagefilledrectangle($img, 30, 170, 170,200, $white);


// coin haut gauche

imagefilledarc($img, 30, 30, 60, 60, 180, 270, $white, IMG_ARC_PIE );
imagearc($img, 30, 30, 60, 60, 180, 270, $black);
imageline ($img, 30, 0, 170, 0, $black);


// coin haut droit

imagefilledarc($img, 170, 30, 60, 60, 270, 360, $white,IMG_ARC_PIE);
imagearc($img, 170, 30, 60, 60, 270, 360, $black);
imageline ($img, 199, 30, 199, 170, $black);


// coin bas droit

imagefilledarc($img, 170, 170,60, 60, 0, 90, $white,IMG_ARC_PIE);
imagearc($img, 170, 170,60, 60, 0, 90, $black);
imageline ($img, 170, 199, 30, 199, $black);


// coin bas gauche

imagefilledarc($img, 30, 170, 60, 60, 90, 180, $white,IMG_ARC_PIE);
imagearc($img, 30, 170, 60, 60, 90, 180, $black);
imageline ($img, 0, 170, 0, 30, $black);

// Affichage au navigateur

imagepng($img);
   
// Libération de la mémoire

imagedestroy($img);



?>
J'ai le contour mais rien d'autre ne s'affiche. Si j'exclu la portion de script ou je cherche les infos de la table, et que dans je fait:
$couleur_fond = ImageColorAllocate ($img, 255, 0, 0);
Là mon image apparait.

Les couleurs sont stockées dans la table au format RVB, si je fais un echo des couleurs, j'ai la valeur qui s'affiche correctement.


Si vous avez une idée...

Merci.