Wie malt man zwei Farbverläufe auf einem Canvas?

9

Sehen Sie sich dieses Beispiel-Farbverlaufsbild an, das ich mit einem Paint-Programm gemacht habe:

Es enthält 2 vertikale Gradienten.

Der erste Farbverlauf von oben nach unten ist eine Mischung aus Weiß und einem leicht gefärbten Orange.

Der zweite Farbverlauf von unten nach oben ist ebenfalls eine Mischung aus weißem, aber etwas dunklerem Orange.

Der Punkt ist, dass 2 Farbverläufe verwendet wurden, mit 4 Farben, 2 weißen und 2 orangefarbenen Variationen.

Ich möchte das auf einer Leinwand machen, weiß aber nicht wie. Die Farben könnten alles sein, oben war nur ein Beispiel.

Wie kann ich das tun?

    
Johan 02.03.2012, 11:30
quelle

4 Antworten

15

Delphi 2005 und höher:

Verwenden Sie GradientFillCanvas aus der GraphUtil -Einheit:

%Vor%

Frühere Delphi-Versionen:

Verwenden Sie GradientFill von Msimg32. dll . Fügen Sie einer globalen Diensteinheit den folgenden Code hinzu:

%Vor%

Jetzt wird der Malcode:

%Vor%

    
NGLN 02.03.2012, 13:45
quelle
7

Ich habe es mit einem normalen TCanvas programmiert.

Der Code zeichnet einen Farbverlauf auf dieser Leinwand, indem er die Farben stetig erhöht. Sie können dies beispielsweise anpassen, indem Sie der Start- oder Endfarbe Gewichte hinzufügen (z. B. um den Weißanteil zu erhöhen).

%Vor%

Nennen Sie es so:

%Vor%

Das Ergebnis sieht folgendermaßen aus:

    
Chris 02.03.2012 12:53
quelle
0

Ich verwende gerne Klassenhelfer auf TCanvas, also habe ich den Code in der anderen Antwort überarbeitet.

%Vor%

So sieht der eigentliche Anruf so aus

%Vor%

Beispiel:

    
Jim Ferguson 25.02.2017 12:05
quelle
-2
%Vor%     
SlpLow 28.07.2015 19:06
quelle

Tags und Links