rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Problème changer couleur image en PHP

Authentiks, le jeudi 22 novembre 2007 à 19:07:58
Bonjour,

Voila j'aimerai changer la couleur des pixels d'une image suivant ce que l'utilisateur choisit dans la palette.

Alors j'ai trouvé un programme qui le fait pas trop mal. Le problème est qu'il change la couleur de l'image mise en exemple sur le site ( http://www.atelierphp.net/... losque je crée une image PNG, le changement de couleur ne fonctionne pas.

J'avoue être un peu perdu et pas trop comprendre le pourquoi du comment.
Je vous mets ci-dessous mon code:


<?php

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


$red = $_GET['red']; 
$green=$_GET['green'] ; 
$blue=$_GET['blue']; 
$image_N=$_GET['img'];
if(isset($_GET['num_corps']))
		{$num_image_corps = $_GET['num_corps'];}


$imageFile = "images/".$image_N.".png"; 

$myImage = ImageCreateFromPNG($imageFile);


changeImageColor($myImage,$red,$green,$blue);



if($image_N<10){
imagePNG($myImage, "images/new_corps.png");
header("location: corps.php?change=Y&num_corps=".$image_N."");}

elseif($image_N<20){
imagePNG($myImage, "images/new_yeux.png");
header("location: yeux.php?change=Y&num_yeux=".$image_N."&num_corps=".$num_image_corps."");}

//--------------------------------------
function changeImageColor($myImage,$red,$green,$blue) 
{ 
    for($i=0;$i<imagecolorstotal($myImage);$i = $i+1) 
      { 
          $col=ImageColorsForIndex($myImage,$i); 
        //si la couleur est proche de noire on la met a NOIRE  
        if($col['red']<=20 AND $col['green']<=20 AND $col['blue']<=20) 
					{$red_set=0; $green_set=0;  $blue_set=0;}
		//nouvelle couleur = couleur_saisie + ancienne_couleur
		else{
			$red_set=($red+$col['red']);  
			$green_set=($green+$col['green']); 
			$blue_set=($blue+$col['blue']); 
			if ($red_set >255) $red_set=255; 
			if ($green_set>255)$green_set=255; 
			if ($blue_set>255)$blue_set=255;
			}
			
          imagecolorset($myImage,$i,$red_set,$green_set,$blue_set);
      } 
}
?>



Voila donc si vous pouvez m'expliquez pourquoi ce code fonctionne pour l'image accéssible dans le lien que je vous ai mis en intro et pas avec toutes les images PNG ?!

Merci beaucoup à tous!!
Configuration: Windows Vista
Internet Explorer 7.0
Répondre à Authentiks  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 tp, le jeudi 27 décembre 2007 à 09:17:12
Bonjour,

A priopri, l'image PNG doit être en mode couleurs indexées (il vous faut un logiciel de traitement d'images pour faire cette conversion, choisir : mode > couleurs indexées).
Je vous invite à lire la leçon correspondante pour en savoir plus :
Leçon N° 17 : Création / Manipulation des images
http://www.atelierphp.net/lesson_17_images/lesson_17.php

Cordialement
tp
Répondre à tp
Logiciels pertinents trouvés dans les téléchargements
Télécharger FastNote 2.4.0FastNote - FastNote permet d'avoir des Post-It électroniques sur votre bureau. C'est très simple: Quel que soit le logiciel dans...Catégorie: Organisation
Licence: Freeware/gratuit
Télécharger Image Resizer 1Image Resizer - Petit utilitaire (PowerToy) basique, très simple, permettant de réduire la taille d'une image, dans le but, notamment, de...Catégorie: Graphisme
Licence: Freeware/gratuit
Télécharger VSO Image Resizer 2.0.1.9VSO Image Resizer - Le logiciel VSO Image Resizer organise vos photos en réduisant leur résolution et en les déplaçant facilement au sein de...Catégorie: Graphisme
Licence: Freeware/gratuit
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « Problème changer couleur image en PHP »