boucle d'image en php

mailer
WRInaute discret
WRInaute discret
 
Messages: 158
Inscription: 26 Juin 2005

boucle d'image en php

Message le Lun Jan 09, 2006 18:03

j'aimerais tuot simplement arriver a faire une boucle afin de créer plusieures images php avec la librairie gd.
avez vous une idée dela façon de faire ???
merci de me mettre sur la piste


tangui
WRInaute impliqué
WRInaute impliqué
 
Messages: 863
Inscription: 10 Fév 2005

Message le Lun Jan 09, 2006 18:08

Code: Tout sélectionner
$i=0;
while(i<10){
ton code
$i++;
}


par exemple...

mailer
WRInaute discret
WRInaute discret
 
Messages: 158
Inscription: 26 Juin 2005

Message le Lun Jan 09, 2006 18:22

bon j'ai avancé jusqu'a faire ce bout de code, mais une seule image est crée, et franchement , je en vois pas pourquoi celle là !
Code: Tout sélectionner
for($i=0 ; $i<= $cal_str ; $i ++)
      {
      $image = imagecreate(20,25);

      $fond = imagecolorallocate($image, $r_img,$v_img,$b_img); // Fond de couleur
      $couleur_texte = imagecolorallocate($image, $color_r, $color_v, $color_b);

      
      
         switch($num_cpt[$i]){
         case $num_cpt[$i] :    
$text = imagestring($image, 4, 5, 5, $num_cpt[$i], $couleur_texte);
$img = imagepng($image);
break;
         
         }
echo $img;
      }


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 25 Avr 2005

Message le Lun Jan 09, 2006 20:46

Essaye plutot comme ça:

$image = imagecreate(20,25);
$fond = imagecolorallocate($image, $r_img,$v_img,$b_img); // Fond de couleur
$couleur_texte = imagecolorallocate($image, $color_r, $color_v, $color_b);
$img = imagepng($image);

for($i=0 ; $i<= $cal_str ; $i ++)
{
$text = imagestring($image, 4, 5, 5, $num_cpt[$i], $couleur_texte);
echo $img;
}

et $cal_str c´est quoi?

mailer
WRInaute discret
WRInaute discret
 
Messages: 158
Inscription: 26 Juin 2005

Message le Lun Jan 09, 2006 21:46

je mets le code en entier, enfin plus de lines pour mieux comprendre ...
Code: Tout sélectionner
header ("Content-type: image/png");

   $coul_police = '#8FBEF1';
   list($color_r, $color_v, $color_b) = explode("-", hex2rgb($coul_police));
   

   $nbVisit = "01254";   
   $cal_str = (strlen($nbVisit) - 1);
   $newNum = wordwrap($nbVisit, 1, ' ', 1);

   $num_cpt = explode(' ',$newNum);
   for($i=0 ; $i<= $cal_str ; $i ++)
      {
      $image = imagecreate(20,25);

      $fond = imagecolorallocate($image, $r_img,$v_img,$b_img); // Fond de couleur
      $couleur_texte = imagecolorallocate($image, $color_r, $color_v, $color_b);

      
      
         switch($num_cpt[$i]){
         case $num_cpt[$i] :    $text = imagestring($image, 4, 5, 5, $num_cpt[$i], $couleur_texte);
                           $img = imagepng($image);
                           break;
         
         }
         echo $img;
      }


$nbVisit, est la variable iniatiale, qui permet de déterminer le nombre d'image a créer!
Le nombre d'image est égal, au nombre de caractere présent dans la chaine!
$cal_str permet donc de connaitre le nombre de caracteres dans la chaine numerique.
$num_cpt, permet de scinder la chaine en plusieurs morceaux, c'est a dire a diviser tout les caracteres.
Le nombre d'image a créer est égal au nombre count de l'array $num_cpt.

Mais mon exemple affiche qu'une image...


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 25 Avr 2005

Message le Mar Jan 10, 2006 1:08

Mais a quoi de sert ton switch si tu dis if x=x... je comprends pas

mailer
WRInaute discret
WRInaute discret
 
Messages: 158
Inscription: 26 Juin 2005

Message le Mar Jan 10, 2006 19:34

bin en fait mon switch sert a passer la condition if $num_cpt[$i] existe alors $num_cpt[$i] = $text ....

as tu une autre idée ?


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 25 Avr 2005

Message le Mar Jan 10, 2006 20:06

donc si ta variable existe pas, tu va avoir une failure notice php.
Logiquement pour savoir si une variable existe, on utilse
if(isset($var))

mailer
WRInaute discret
WRInaute discret
 
Messages: 158
Inscription: 26 Juin 2005

Message le Mar Jan 10, 2006 20:53

bon en fiat j'ai essayé un exemple tout bete qui devrait marcher mais sans succes!
si des personnes peuvent essayer, chez moi j'ai qu'une image qui est crée, et c'est 0.

Code: Tout sélectionner
<?
header ("Content-type: image/png");

   $nbVisit = "01254";   
   $cal_str = (strlen($nbVisit) - 1);
   $newNum = wordwrap($nbVisit, 1, ' ', 1);

   $num_cpt = explode(' ',$newNum);
   
   
   for($i=0 ; $i<= $cal_str ; $i++)
      {
         $image = imagecreate(20,25);

      $fond = imagecolorallocate($image, 0,0,0); // Fond de couleur
      $couleur_texte = imagecolorallocate($image, 255,255,255);

      $text = imagestring($image, 4, 5, 5, $num_cpt[$i], $couleur_texte);
      $img = imagepng($image);   
      
      }

?>


pour leswitch y'a pas de faulure puisqu'il faut que la condition existe pour créer l'image sinon rien se passe, enfin c'est ce que je cherche a faire du moins

mailer
WRInaute discret
WRInaute discret
 
Messages: 158
Inscription: 26 Juin 2005

Message le Mer Jan 11, 2006 20:56

bon j'ai avancé un peu, et j'ai pu comprendre qu'en fait ma boucle doit se trouver non pas dans mon image php, mais dans la page qui insere l'image php !!!

ainsi donc, j'ai donc fais comme çà!

j'ai placé ceci dans ma page php qui insere l'image php

Code: Tout sélectionner
<?
$nbVisit = "01254";     
            $cal_str = (strlen($nbVisit) - 1);
            $newNum = wordwrap($nbVisit, 1, ' ', 1);
            $num_cpt = explode(' ',$newNum);
        for($i=0 ; $i<= $cal_str ; $i ++)
                {
            $_SESSION['police'] = $num_cpt[$i] ;
         $affich = "<img src=\"./imagecreate1.php\"  />";
            }

?>



et puis dans mon image php, j'ai mis celà !
Code: Tout sélectionner
<?
session_start();
$police = $_SESSION['police'] ;

header ("Content-type: image/png");
$image = imagecreate(20,20);
      
$fond = imagecolorallocate($image, 0,0,0); // Fond de couleur
$couleur_texte = imagecolorallocate($image,255, 255, 255); // couleur du texte


imagestring($image, 4, 3, 3, $police, $couleur_texte);


imagepng($image);


      
?>


çà marche malheureusement pas, pourquoi ?????

merci à tous pour vos aides

mailer
WRInaute discret
WRInaute discret
 
Messages: 158
Inscription: 26 Juin 2005

Message le Jeu Jan 12, 2006 21:20

j'ajoute que j'ai bien un sessin_start au début de mon premier code.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités