Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Farben mischen (https://www.delphipraxis.net/74776-farben-mischen.html)

blackdrake 8. Aug 2006 15:25


Farben mischen
 
Hallo.

Ich suche eine Funktion, die 2 Farben in einem Verhältnis zueinander mischt.

Ich habe in Jasc Paintshop Pro mal 2 Farben übereinandergelegt (die obere zu 50% Transparent) und habe folgendes Ergebnis erhalten:

RGB(185, 175, 13) x RGB(251, 109, 109) = RGB(217, 142, 60)
HSL(40, 222, 99) x HSL(255, 241, 180) = HSL(22, 172, 139)

Ich konnte daraus aber keinen Rechenweg finden...

Gruß
blackdrake

Boombuler 8. Aug 2006 15:30

Re: Farben mischen
 
Kommt nich ganz genau hin... könnte aber auch daran liegen das es nich ganz genau 50% waren
(R1 + R2) div 2 = neuer R Wert
(G1 + G2) div 2 = neuer G Wert
(B1 + B2) div 2 = neuer B Wert

Greetz
Boombuler

RavenIV 8. Aug 2006 15:35

Re: Farben mischen
 
bei RGB wird das Mittel der einzelnen Farbwerte genommen.

für HSL hab ich keine Erklärung, bzw kenn ich das Verfahren nicht.

blackdrake 8. Aug 2006 15:45

Re: Farben mischen
 
Hallo und Danke für die Antworten.

Ich hätte nicht gedacht, dass es so einfach durch RGB zu berechnen ist :shock: (HSL ist ja durch RGB abzuleiten)

Die Form für ein beliebiges Verhältnis ist dann

Delphi-Quellcode:
verhaeltnis := 0.33; // 33% zu 77%
r := round(verhaeltnis * getrvalue(color1.Color) + (1-verhaeltnis)*getrvalue(color2.Color));
g := round(verhaeltnis * getgvalue(color1.Color) + (1-verhaeltnis)*getgvalue(color2.Color));
b := round(verhaeltnis * getbvalue(color1.Color) + (1-verhaeltnis)*getbvalue(color2.Color));

mixedcolor.Color := rgb(r, g, b);


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz