DÉGRADÉ

cs_ceced Messages postés 70 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 11 mai 2005 - 7 juin 2004 à 16:35
 Utilisateur anonyme - 20 mars 2011 à 14:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23470-degrade

Utilisateur anonyme
20 mars 2011 à 14:17
Bonjour
Sympa et efficace.
mais existe-il une méthode capable de faire le même chose avec une zone difforme.
Par exemple les départements d'une carte de France.
JJDAI
cs_hornetbzz Messages postés 59 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 3 janvier 2011
2 janv. 2010 à 12:28
super comme base pour jouer sans chercher des heures les fonctions de base ;-)
XelectroX Messages postés 209 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 6 novembre 2009
27 juin 2008 à 11:39
Super :)
Remplace juste "<?" par "<?php". ;)
cs_Fredido Messages postés 1 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 13 novembre 2006
13 nov. 2006 à 18:05
Une variante : ajouter ceci en début de script :

$couleur1=$_GET["couleur1"];
$couleur2=$_GET["couleur2"];

$r1=hexdec( substr($couleur1,0,2));
$v1=hexdec( substr($couleur1,2,2));
$b1=hexdec( substr($couleur1,4,2));

$r2=hexdec( substr($couleur2,0,2));
$v2=hexdec( substr($couleur2,2,2));
$b2=hexdec( substr($couleur2,4,2));

et vous pourrez passer couleur1 , couleur de départ, et couleur2 en couleur d'arrivée, en écriture HTML

> degrade.php?l980&h=610&sens=3&couleur1=000000&couleur2=FFFFFF

sinon bravo pour le script ;)
elidris Messages postés 125 Date d'inscription lundi 15 août 2005 Statut Membre Dernière intervention 9 octobre 2007
20 mai 2006 à 12:50
Trop trop génial ! merci arnal69130 , j'en revient pas tellement ça tue !!!
;)
sabugo Messages postés 20 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 16 juillet 2005
18 nov. 2005 à 22:07
Ben nan, tout compte fait, je fais ça en Flash, c'est plus simple :)


a++
sabugo Messages postés 20 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 16 juillet 2005
18 nov. 2005 à 21:21
Hello !!!

Très bon script. J'essaye de m'en inspirer pour créer un générateur de dégradé un peu plus avancé, permettant de passer une série de couleur avec un ratio pour chacune.
Seulement, je n'arrive pas à obtenir un dégradé "fluide"... dès qu'il y a plus de 2 couleurs, ça part en vrille et les couleurs centrales sont très saccadées au niveau des passages de dégradés...

Voici mon code, si quelqu'un a une idée pour avoir un meilleur visuel, ça serait sympa de m'expliquer :)



<?

$l=400;
$h=200;
$sens=1; //sens : 1->horizontal, 2->vertical, 3->diagonal

$tab = array
(
array( 'r'=>0xff, 'v'=>0x00, 'b'=>0x00, 'ratio' => 0 ),
array( 'r'=>0x00, 'v'=>0x00, 'b'=>0xff, 'ratio' => 100 ),
array( 'r'=>0x00, 'v'=>0xff, 'b'=>0x00, 'ratio' =>255 )
);
//---

$im=imagecreatetruecolor($l,$h);
$blanc=imagecolorallocate($im,255,255,255);
switch ($sens)
{
case 1 : $t=$l; break;
case 2 : $t=$h; break;
case 3 : $t=$l+$h; break;
}

//on dessine une ligne verticale, horizontale ou diagonale pour chaque pixel entre 0 et $t
$index = 0;
$percent = $t / 255 * 100;
$nCount = 0;
while( $index+1 < count( $tab ) )
{
$c1 = $tab[$index];
$c2 = $tab[$index + 1];

for( $i = $nCount; $i<$c2['ratio'] * $percent / 100; $i++ )
{
$r = $c1['r'] + $i*($c2['r']-$c1['r'])/$t;
$v = $c1['v'] + $i*($c2['v']-$c1['v'])/$t;
$b = $c1['b'] + $i*($c2['b']-$c1['b'])/$t;
$c=imagecolorallocate($im,$r,$v,$b);
switch ($sens)
{
case 1 : imageline($im,$i,0,$i,$h,$c); break;
case 2 : imageline($im,0,$i,$l,$i,$c); break;
case 3 : imageline($im,max(0,($i-$h)),min($i,$h),min($i,$l),max(0,($i-$l)),$c); break;
}
$nCount++;
}
$index++;
}


header("Content-Type: image/jpeg");
imageJpeg($im);
imagedestroy($im);?>


?>


A++

Thierry
didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007
16 juil. 2004 à 14:39
J'ai compris, le pb vient de là, par exemple (en fait, à chaque utilisation de tableau):
$c1=array(r=>$_GET["r1"],v=>$_GET["v1"],b=>$_GET["b1"]);
à remplacer par:
$c1=array('r'=>$_GET["r1"],'v'=>$_GET["v1"],'b'=>$_GET["b1"]);
et ainsi de suite
didrocks Messages postés 73 Date d'inscription samedi 11 janvier 2003 Statut Membre Dernière intervention 17 décembre 2007
16 juil. 2004 à 12:29
je comprends pas pkoi ça ne fonctionne pas chez moi.
J'ai pourtant extension=php_gd2.dll de chargé avec easyphp. J'ai mis dans le rep de mon index.php ton fichier et j'ai mis dans la partie html d'index
As-tu une idée de ce qui cloche?
cs_plopman Messages postés 67 Date d'inscription dimanche 29 février 2004 Statut Membre Dernière intervention 13 septembre 2006
8 juin 2004 à 17:21
merci de ta source, ca marche niquel :o)
Bonne continuation
PLoPmaN
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
8 juin 2004 à 14:42
Merci, vous allez me faire rougir !
;o)
defkrie Messages postés 435 Date d'inscription vendredi 20 septembre 2002 Statut Membre Dernière intervention 20 novembre 2004
8 juin 2004 à 14:36
je mets 8/10.ct bein écrit simple et rapide.
mickaelpfr Messages postés 197 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 29 avril 2009 2
8 juin 2004 à 13:33
Très propre , simple a réutiliser :)
j'aurais toutefois utilisé utilisé une fonction pour y faire appel avec la couleur de début / celle de fin / orientation :)
mais bien.

@++
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
7 juin 2004 à 19:25
Simple, efficace! Bravo!

@++

R@f
cs_ceced Messages postés 70 Date d'inscription lundi 12 mai 2003 Statut Membre Dernière intervention 11 mai 2005
7 juin 2004 à 16:35
trés propre, j adore..
Rejoignez-nous