Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Farben kombinieren (https://www.delphipraxis.net/83413-farben-kombinieren.html)

Alexander Roth 2. Jan 2007 13:24


Farben kombinieren
 
Hallo,

ich würde gerne Farben kombinieren und das am besten mit BitBlt.
Das soll solche bedingungen erfüllen:
weis+grün = weis (heller geht es ja schließlich nicht)
schwarz+grün=grün
schwarz+weis=weis
Gelb+Blau=Grün
.
.
.

Ich weis nicht welche dieser Optionen von BitBlt passt. Und ich glaube es tut leider keine.

Wisst ihr Rat?

Gruß Alexander

Der_Unwissende 2. Jan 2007 13:46

Re: Farben kombinieren
 
Hi,
bei mind. 24 Bit Farbtiefe sollte dir SrcPaint weiterhelfen. Die Operation die du hier benötigst ist das logische Oder. Hier wird jedes Bit immer dann 1, wenn mind. eines der beiden Bits 1 ist, für weiß ist dies eine Tautologie für jedes Bit. Bei Schwarz sieht es analog aus, hier wird die andere Farbe komplett unverändert übernommen.
Hast du >=24 Bit Farbtiefe, so werden die Farbwerte immer RGB (je ein Byte) kodiert abgelegt und mittels oder wird hier wirklich die Farbe gemischt. Anders sähe dass bei den kleineren (indizierten) Farbwerten aus. Hier würdest du nur den Wert des Index mittels oder verändern, was aber an dieser Stelle in der Farbtabelle steht hat nichts mit den Ausgangsfarben zu tun.

Gruß Der Unwissende

Alexander Roth 2. Jan 2007 14:28

Re: Farben kombinieren
 
Liste der Anhänge anzeigen (Anzahl: 3)
Also, so richtig gut klappen tut es nicht aus grau+grün wird hellgrün.
Ich habe hier die Bilder. Man muss die ein bisschen vergößern (800 mal). Dann sieht man dass es so richtig nicht klappt.

Gruß Alexander

Khabarakh 2. Jan 2007 15:17

Re: Farben kombinieren
 
Zitat:

Zitat von Alexander Roth
Gelb+Blau=Grün

Wie soll das funktionieren :gruebel: ?
Code:
FFFF00
0000FF
------
00FF00
Du siehst, mit RGB+Bit-Verknüpfungen kann man hier nicht weit kommen, du musst eine eigene Formel aufstellen. Vielleicht helfen dir noch andere Farbsysteme wie HLS, aber aus diesen drei Beispielen kann ich wirklich nicht herauslesen, welche Farbkombination du erreichen willst.

Alexander Roth 2. Jan 2007 15:52

Re: Farben kombinieren
 
Zitat:

Zitat von Khabarakh
Zitat:

Zitat von Alexander Roth
Gelb+Blau=Grün


Da habe ich mich wohl ein bisschen vertan.
War es Gelb+Grün=Blau?

Zitat:

Zitat von Khabarakh
Du siehst, mit RGB+Bit-Verknüpfungen kann man hier nicht weit kommen, du musst eine eigene Formel aufstellen.

Mist.

Zitat:

Zitat von Khabarakh
aber aus diesen drei Beispielen kann ich wirklich nicht herauslesen, welche Farbkombination du erreichen willst.

Diese

jakobwenzel 2. Jan 2007 15:57

Re: Farben kombinieren
 
Mit GetRValue, GetGValue und GetBValue die einzelnen Farbwerte extrahieren, addieren und mit rgb wieder zusammensetzen.

Alexander Roth 2. Jan 2007 16:11

Re: Farben kombinieren
 
So einfach?

Der_Unwissende 2. Jan 2007 16:14

Re: Farben kombinieren
 
Zitat:

Zitat von Alexander Roth
So einfach?

Na ja, Farbwerte Extrahieren, addieren und wieder zusammensetzen ist nichts anderes als das Logische oder ohne Übertrag (also so ziemlich dass, was du hier schon hast).

Alexander Roth 2. Jan 2007 16:19

Re: Farben kombinieren
 
Sicher, dass das nichts anderes ist als das logische?

Der_Unwissende 2. Jan 2007 16:32

Re: Farben kombinieren
 
Zitat:

Zitat von Alexander Roth
Sicher, dass das nichts anderes ist als das logische?

Nein, es dürfte was anderes sein, aber nicht das erwartete. Nimmer einfach mal weiß, dass wäre $FFFFFF (24 Bit) extrahier hier den rot Anteil -> $FF. Jetzt addier einfach mal 1 zu diesem Rot Wert (weil du es mit der Farbe $010000 mischen möchtest), dann würde beim addieren ein Übertrag rauskommen, da $FF schon das größte Byte ist, dass man speichern kann. Da du aber nur das niederwertigste Byte deiner Summe betrachtest hättest du an dieser Stelle kein weiß mehr!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.
Seite 1 von 3  1 23      

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