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] Changement de couleur


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut [GD] Changement de couleur
    Salut à tous,

    Je tiens à écrire plusieurs fois le même texte de couleur différente.
    Par exemple 7 fois en longueur et 7 fois en largeur:

    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
    $county = 7;
    $countx = 7;
    for ($i = 1; $i <= $county; $i++)
     {
      $posy = $i * $y;
      for ($u = 0; $u < $countx; $u++)
      {
       $posx = $u * $x;
       $r = rand(0, 240);
       $v = rand(0, 240);
       $b = rand(0, 240);
       // Vérifie que la couleur n'est pas celle du fond
       while ($r == $red && $v == $green && $b == $blue)
       {
        $r = rand(0, 240);
        $v = rand(0, 240);
        $b = rand(0, 240);
       }
       $textcolor = imagecolorallocate($im, $r, $v, $b);
       imagettftext($im, 8.2, 0, $posx, $posy, $textcolor, $dirpolice, $name);
       unset($textolor);
      }
     }
    Tout va presque bien, le problème c'est après environ 35 écritures, la couleur reste là même.

    D'où vient l'erreur?
    Merci

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 703
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 703
    Par défaut
    c'est peut être le type d'image qui bloque les couleurs
    est ce que tu as essayé une image en "truecolors" ?

    est ce que tu pourrais nous faire un petit exemple de code qu'on peut tester chez nous ?

  3. #3
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    En fait il faut qu'il y est la police freshbot dans le même dossier (ou une autre). Je vous la joins:

    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
    <?php
     
     header("Content-type: image/jpeg"); 
     
     //-----------------------------
     // Valeurs tests
     //-----------------------------
     $name = 'muse';
     $color = 'FFFFFF';
     $dirpolice = 'freshbot.ttf';
     
     //-----------------------------
     // Largeur - Hauteur
     //-----------------------------
     $textsize = imagettfbbox(8.2, 0, $dirpolice, $name);
     $x = abs($textsize[4]) + abs($textsize[6]);
     $y = abs($textsize[1]) + abs($textsize[7]);
     $countx = ceil(100 / $x);
     $county = ceil(100 / $y);
     
     //-----------------------------
     // Création de l'image & couleur
     //-----------------------------
     $im = @imagecreate(100, 100);
     $red = hexdec(substr($color, 0, 2));
     $green = hexdec(substr($color, 2, 2));
     $blue = hexdec(substr($color, 4, 2));
     $background_color = imagecolorallocate($im, $red, $green, $blue);
     
     //-----------------------------
     // Ecriture
     //-----------------------------
     for ($i = 1; $i <= $county; $i++)
     {
       $posy = $i * $y;
       for ($u = 0; $u < $countx; $u++)
       {
         $posx = $u * $x;
         $r = rand(0, 240);
         $v = rand(0, 240);
         $b = rand(0, 240);
         while ($r == $red && $v == $green && $b == $blue)
         {
            $r = rand(0, 240);
            $v = rand(0, 240);
            $b = rand(0, 240);
         }
         $textcolor = imagecolorallocate($im, $r, $v, $b);
         imagettftext($im, 8.2, 0, $posx, $posy, $textcolor, $dirpolice, $name);
         unset($textolor);
       }
     }
     
     imagejpeg($im);
     imagedestroy($im);
     
    ?>
    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 703
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 703
    Par défaut
    c'est bien un problème de palette
    remplace "imagecreate" par "imagecreatetruecolor" et toutes les couleurs sont là

    par contre mon aide s'arrêtera là, je ne sais pas du tout pourquoi ça s'arrête au bout de 34 couleurs alors que la palette de base est sensée en contenir 255

  5. #5
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Ah génial


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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/01/2007, 22h14
  2. Changement de couleur d'un libellé sur OnClick
    Par maysa dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/11/2005, 16h29
  3. CSS Pas de changement de couleur quan on clique sur un lien
    Par pmboutteau dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 16/08/2005, 11h15
  4. Changement de couleur de police sur une partie d'un caption
    Par kobe dans le forum Composants VCL
    Réponses: 3
    Dernier message: 11/07/2005, 11h18
  5. Changement de couleur quand j'affiche du texte...
    Par MaxPayne dans le forum OpenGL
    Réponses: 3
    Dernier message: 10/12/2004, 14h55

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