Forum: Multimedia
Delphi
by Martin K,
17. Apr 2006
Hab mir sowas gebastelt:
procedure TForm1.Button1Click(Sender: TObject);
begin
If ColorDialog1.Execute then
Form1.Color := not ColorToRGB(ColorDialog1.Color);
end;
Entweder bleibt dann die Farbe meiner Form (clBtnFace) oder sie wird schwarz.
Das hier dagegen funzt:
Forum: Multimedia
Delphi
by Martin K,
17. Apr 2006
Ne, das funzt irgendwie nicht.
Da bekomme ich ja negative Zahlen raus...
Forum: Multimedia
Delphi
by Martin K,
17. Apr 2006
Nein, nein, nein, ich will nur eine Farbe umkehren:
Forum: Multimedia
Delphi
by Martin K,
17. Apr 2006
Hab grad was festgestellt:
Das mit der Komplimentärfarbe geht ganz einfach:
function Umkehrfarbe(const Color: TColor): TColor;
begin
Result := $FFFFFF - Color;
end;
Forum: Multimedia
Delphi
by Martin K,
17. Apr 2006
Also den Code von turboPASCAL verstehe ich nicht.
Es müsste doch so gehen:
procedure Irgendwas;
function Umkehrfarbe(const Color: TColor): TColor;
var c1,c2,c3: Byte;
begin
c1 := Color div 10000;
c2 := Color div 100 mod 100;
Forum: Multimedia
Delphi
by Martin K,
17. Apr 2006
Wie kann man das denn mit der Komplimentärfarbe anstellen?
Es müsste ja etwa so aussehen (bei rot): #FF0000 -> #00FFFF
Ich müsste also jedem Bereich meiner Farbe (rot grün blau) den Wert: 255-alten Wert zuweisen.
Wie kann ich denn einen Farbwert (Integer) in die Farbwerte der drei Grundfarben "zerlegen" und nachher wieder "zusammensetzen"?
Forum: Multimedia
Delphi
by Martin K,
17. Apr 2006
Ne, der Farbwert muss schon einheitlich und genau sein (kein Farbbereich).
Ich verwende Symbole, die 32x32 groß sind, also sollte die Suche nach jedem einzelnen Pixel +ersetzen auch nicht sehr lange dauern (was bei größeren Bildern vielleicht eher ein Problem sein könnte).
Forum: Multimedia
Delphi
by Martin K,
17. Apr 2006
Ja, das ist mir schon klar!
Aber so eine Funktion gibt es ja eigentlich in jedem Bildbearbeitungsprogramm.
Gibt es eigentlich auch eine Möglichkeit, nur einzelne Farben umzukehren?
Also z.B. will ich nur das, was rot in meinem Image ist (überall wo die Color=clRed ist) durch die Komlimentärfarbe von rot ersetzen.
Alles andere soll aber die alte Farbe behalten.
Ist das irgendwie möglich?
Forum: Multimedia
Delphi
by Martin K,
17. Apr 2006
Danke, werd ich mal ausprobieren...
Forum: Multimedia
Delphi
by Martin K,
17. Apr 2006
Hi,
gibt es eine einfache Möglichkeit, ein TImage negativ zu machen, also die Fraben umzukehren ?
Oder muss ich da irgendeinen komplizierten Code machen, der jedes Pixel einzeln abfragt und seinen Farbwert umkehrt?
In Paint geht das schließlich auch ganz einfach:
Bild -> Farben umkehren