Dégradé de couleurs rapide et simple

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 875 fois - Téléchargée 19 fois

Contenu du snippet

Voici un petit code rapide pour faire des dégradés de couleur, selon la taille de votre fiche. J'inclus également des exemples. Il y a pas mal de possibilités, vu qu'il y a 7 paramètres.

Source / Exemple :


// DownR, DownG, et DownB paramètrent le dégradé.
procedure TForm1.MakeDegrade(Dir, DownR, DownG, DownB: Boolean; R, G, B: Byte);
Var                              // Dir, c'est le sens du dégradé (horizontal, vertical).
   I: Integer;   // Variable de contrôle 1              // R, G, B sont les couleurs de base.
   I2: Integer;  // Variable de contrôle 2
begin
     for I := 0 to Width do     // Boucle horizontale
     begin
          begin if (R <> 0) and (DownR = False) then R := R - 1; if (G <> 0) and (DownG = True) then G := G - 1; if (B <> 0) and (DownB = True) then B := B - 1; end;   // Chaque ligne, on diminue l'intensité de 1
          for I2 := 0 to Height do     // Boucle verticale
          begin
               if Dir = True then Canvas.Pixels[I, I2] := rgb(R, G, B) else Canvas.pixels[I2, I] := rgb(R, G, B);               // On accomplit chaque ligne verticale du dégradé ...
          end;                    
     end;
end;

Conclusion :


Faites des tests de couleurs, :p
Voici quelques exemples déja paramètrés, essayez-les :

MakeDegrade(True, False, True, False, 201, 241, 221);
MakeDegrade(False, False, True, False, 200, 102, 193);
MakeDegrade(True, False, True, True, 200, 102, 101);

Voila !

A voir également

Ajouter un commentaire

Commentaires

Bacterius
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
6
Bonjour
Arsofts pour appeler cette procédure (je te conseille de plutot prendre celle de Mauricio, la mienne n'est pas terrible !), tu dois faire comme ca :

MakeDegrade(Dir, DownR, DownG, DownB, R, G, B);

Tu remplaces Dir par la direction (horizontale / verticale), DownR(G, B) par True ou False (tu verras ce que ca fait) et R, G et B par les valeurs de départ !
Le dégradé se dessinera sur ta fiche.
Mais ce n'est pas terrible je te le répète !
Et, merci Mauricio, c'est vrai que tout le monde commence petit et grandit au fur et a mesure ! :p

Cordialement, Bacterius

PS : Arsofts j'avais marqué des exemples d'appels de la procédure dans la conclusion ^^
cs_Arsofts
Messages postés
10
Date d'inscription
jeudi 17 janvier 2008
Statut
Membre
Dernière intervention
13 septembre 2008

slt,
je veux l'appel à cette procedure
est ce qu'il qui peut m'aider
2bigbig
Messages postés
1
Date d'inscription
vendredi 22 décembre 2006
Statut
Membre
Dernière intervention
18 mars 2008

Bravo!!!
cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Statut
Modérateur
Dernière intervention
15 décembre 2014
5
Salut Bacterius,

j' ai vu que tu es passé voir ma source,
comme Cirec, je te conseille d' éviter de changer les pixels passant par :
Canvas.Pixels
que se soit sur un Canvas ou un TBitmap d'ailleurs.

Sinon, je te rassure, on a tous fait comme toi la première fois mais c' est comme ça que l' on progresse!

A+

PS: ce qui compte est de trouver une solution, le temps passe et nos connaissances s' agrandissant, on optimise ensuite ce qui a déjà été fait.
D' oú l' importance de bien présenter le code et surout de bien commenter.
Bacterius
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
6
...
Euh merci Cirec je vais voir ta source et celle de Mauricio...

Cordialement, Bacterius ...

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.