Dégradé

Description

Ce code permet tout simplement de faire un zoli dégradé entre 2 couleurs défini par leurs composantes RVB.
Grace au paramètre sens, le dégradé peut se faire soit horizontalement sur la longueur (sens=1), soit verticalement sur la hauteur (sens=2), soit en diagonal (sens=3).

-> Téléchargez le fichier dégradé.php contenant le code.
-> Faites appel à ce fichier en précisant les paramètres :
<img src="degrade.php?l=980&h=610&sens=3&r1=0&v1=0&b1=255&r2=255&v2=0&b2=0" alt="degrade" />

NB : La bibliothèque GD2 est nécessaire pour utiliser les fonctions php de gestions d'images, donc, dans php.ini, décommenter le ligne
extension=php_gd2.dll

Source / Exemple :


<?//lecture des paramètres ---
$l=$_GET["l"];
$h=$_GET["h"];
$sens=$_GET["sens"]; //sens : 1->horizontal, 2->vertical, 3->diagonal
$c1=array('r'=>$_GET["r1"],'v'=>$_GET["v1"],'b'=>$_GET["b1"]);
$c2=array('r'=>$_GET["r2"],'v'=>$_GET["v2"],'b'=>$_GET["b2"]);
//---

$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
for ($i=0;$i<$t;$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;
   }
}

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

Conclusion :


Voila, maintenant on peut aussi faire le dégradé en diagonale, et les longueur, hauteur, sens et couleurs sont en paramètres.
;o)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.