begin process at 2012 05 31 09:13:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Trucs et astuces

 > 

Recolorisation d'une image avec la lib. GD


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recolorisation d'une image avec la lib. GD

samedi 18 février 2006 à 12:39:43 | Recolorisation d'une image avec la lib. GD

fanfouer

Membre Club
Bonjour,
Je cherche a faire un petit script à l'aide de la librairie GD pour changer les couleurs d'une image que je lui passe à l'aide d'un formulaire d'upload.
Je suis hebergé chez OVH et la librairie GD est activée.
En guise de précision, j'aimerai que le script prenne une couleur que j'aurais pris le soin de définir à l'avance et me la remplace avec une autre définie elle aussi.

Merci de votre aide et bonne après midi ;)
samedi 18 février 2006 à 13:18:21 | Re : Recolorisation d'une image avec la lib. GD

Anthomicro

Salut,

consulte ça : http://fr.php.net/manual/fr/function.imagecolorresolve.php
et ça :
http://fr.php.net/manual/fr/function.imagecolorset.php

a +


    samedi 18 février 2006 à 13:57:34 | Re : Recolorisation d'une image avec la lib. GD

    fanfouer

    Membre Club
    Effectivement c'est pas mal. Ca peut servir a trouver les couleurs a changer.
    Reste maintenant a trouver la fonction permettant de changer la couleur car il s'agit ici de remplacer une couleur présente dans l'aimge par une autre que j'aurais donnée moi dans le script.
    Tout ca dans le but de changer totalement les couleurs de l'image.
    samedi 18 février 2006 à 14:31:38 | Re : Recolorisation d'une image avec la lib. GD

    Anthomicro

    Heu je comprends pas ton dernier message. Tu veux bien remplacer une couleur par une autre non ?


      samedi 18 février 2006 à 16:14:31 | Re : Recolorisation d'une image avec la lib. GD

      fanfouer

      Membre Club

      Oui, et j'ai trouvé entre temps...
      regarde :
      <?
      $filePath='MonImage.png';    // Chemin de l'image
      //Déclaration Array
      $NbCouleur = 20;
      $couleur_orig = array(
       "eau"=>array("59AFDD", "62A3C5", "5BABD6"),
       "foret"=>array("A3DBB0"),
       "Ilots"=>array("FFE3B1"),
       "Fond"=>array("FFF3DC",
       "BordsRte"=>array("#87817F",
       "route60"=>array("FFA985",
       "route40"=>array("FFF991",
       "route20"=>"FFFFFF",
       "chemin"=>"E3D1BA");
      $couleur_new = array(
       "eau"=>array("000000"),
       "foret"=>"000000",
       "Ilots"=>"000000",
       "Fond"=>"000000",
       "BordsRte"=>"FFFFFF",
       "route60"=>"000000",
       "route40"=>"000000",
       "route20"=>"000000",
       "chemin"=>"000000");
      $couleur_type = array("eau", "foret", "Ilots", "Fond", "BordsRte", "route60", "route40", "route20", "chemin");

      img_color($filePath,$couleur_orig, $couleur_new, $couleur_type, $NbCouleur);
      function img_color($filePath,$couleur_orig, $couleur_new, $couleur_type, $NbCouleur){
       // crée l'image et compte ses couleurs
       $im = img_create($filePath);
       if(!empty($im)){
        $k=imagecolorstotal($im);
        // si l'image est en truecolor, convertit en palette
        if(!$k){
         imagetruecolortopalette($im,true,65536*256);
        }
        for($i=0;$i<$NbCouleur;$i++){
         $type = $couleur_type[$i];
         for($j=0;$j<10;$j++){
         //--------------------------------- COULEUR ORIGINALE --------------------------------------------
         $couleurOrig = $couleur_orig[$type][$j];//On sort la valeur de la couleur a changer des array déclarés plus haut
         //Décomposition composantes
         if($couleurOrig[0]=='#'){
          $couleurOrig = substr($couleurOrig,1);//On vire le '#" si il existe en début de chaine
         }
         $rougeOrig = hexdec(substr($couleurOrig,0,2));//On sort la valeur en Base 10 de la veleur du rouge
         $vertOrig = hexdec(substr($couleurOrig,2,2));//On sort la valeur en Base 10 de la veleur du vert
         $bleuOrig = hexdec(substr($couleurOrig,4,2));//On sort la valeur en Base 10 de la veleur du bleu
         //Obentention de l'index
         $couleurOrigIndex = imagecolorexact ($im, $rougeOrig, $vertOrig, $bleuOrig);//On récupere l'index de la couleur a changer
         
         //--------------------------------- NOUVELLE COULEUR --------------------------------------------
         $couleurNew = $couleur_new[$type][0];//On sort la valeur de la couleur a changer des array déclarés plus haut
         //Décompostion composantes
         if($couleurNew[0]=='#'){
          $couleurNew = substr($couleurNew,1);//On vire le '#" si il existe en début de chaine
         }
         $rougeNew = hexdec(substr($couleurNew,0,2));//On sort la valeur en Base 10 de la veleur du rouge
         $vertNew = hexdec(substr($couleurNew,2,2));//On sort la valeur en Base 10 de la veleur du vert
         $bleuNew = hexdec(substr($couleurNew,4,2));//On sort la valeur en Base 10 de la veleur du bleu
         //On change de couleur
         imagecolorset($im, $couleurOrigIndex, $rougeNew, $vertNew, $bleuNew);
         }
        }
        header('Content-type: image/png');
        imagepng($im);
        imagedestroy($im);
       }else{
        echo'image non créee..';
       }
      }
       
      function img_create($n){if(!file_exists($n)){echo"pas d'image";}
      $z=@imagecreatefrompng($n);
      return $z;}
      ?>

      samedi 18 février 2006 à 17:20:30 | Re : Recolorisation d'une image avec la lib. GD

      Anthomicro

      J'ai pas le temps de chercher une solution plus simple mais ça me semble bien long pour ce qu'il y a à faire ;-)




        Cette discussion est classée dans : aide, image, lib, gd, recolorisation


        Répondre à ce message

        Sujets en rapport avec ce message

        Librairie GD, Besoin d'aide !!! [ par Astalavista ] Bon, je post ca, car je n'arrive pas a trouver ... :( Je cherche un moyen de fair un Stretch sur une image, C'est a dir de deformer une image... enfai Besoin d'aide pour gestion des image [ par cladx ] Bonjour, Je cherche soit de la documentation soir une aide direct a propos des image, j'aimerai savoir si il existe des fonctions ou des moyens perme Librairie GD [ par Stephan45120 ] J'orai besoin de superposer 2 images. La première en arrière plan et l'autre en calque par dessus(transparente à certain endroit). Ce que je veux arri Aide en GD [ par HRdesalpes ] Bonjour, Voilà, je cherche à mettre automatiquement les copyright sur mes photos de mon site car sinon j'y suis encore demain :), alors si on peut me [BLOB->GD] Redimensionner un "flux image binaire"... [ par arnal69130 ] Bonjour à tous,Je cherche à faire une page pour afficher la carte d'identité d'un "agent", pour simplifier disons juste son nom et sa photo. Je lit de de l'HTML avec mail() ? [ par Drazounet ] Salut à tous J'essaie actuellement de faire un petit programme de mailing en PHP à l'aide de la fonction mail().Mais, lorsque j'essaie d'intégrer une lycos et library GD [ par bobbycoul ] bonjour,j'ai un compte gratuit sur lycos (multimania), et la library GD (la version 2 est installé sur leur serveurs) foire jexplique:qd je créé une i Couper le bas d'une image (GD PHP) [ par dezeque ] bonjour,j'aimerai savoir comment faire pour couper le bas d'une image ?elle fais 600X800 et j'aimerai enlver les 50 dernirers pixels du bas pour quell Problème d'affichage avec la libraire GD [ par CMOIPOPO ] Salut à tous,Je souhaite dessiner tout bêtement un rectangle en php (je travaille en local) à l'aide de la libraire GD. Pour cela, mon programme est d générer des miniatures avec gd 1.6 [ par vegetaline ] muhaha alors là c'est rigolo, un super défi pour les programmeurs fous!ok j'ai le code pour générer des miniatures grâce au php, mais ça marche qu'ave


        Nos sponsors


        Sondage...

        Comparez les prix

        CalendriCode

        Mai 2012
        LMMJVSD
         123456
        78910111213
        14151617181920
        21222324252627
        28293031   

        Consulter la suite du CalendriCode

        Photothèque

        A découvrir



         
        Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
        CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
        CodeS-SourceS.com© est une marque déposée tous droits réservés

        Google Coop CodeS-SourceS Google Coop CodeS-SourceS
        Temps d'éxécution de la page : 1,108 sec (4)

        Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales