Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Farbwert (https://www.delphipraxis.net/40937-farbwert.html)

Maximus 23. Feb 2005 13:35


Farbwert
 
Hallo,

Um gleich zu meinem Problem zu kommen: Ich habe eine Farbe in einer Variable vom Typ TColor gegeben (wird aus einem Bild vom Typ TBitmap eingelesen), diese möchte ich nun in einen Hexadezimalen Farbwert umwandeln. Und jetzt möcht ich den Hexadezimalen Farbwert in einer HTML Datei ausgeben (natürlich direkt in der Farbe eingefärbt), doch leider gibt es hierbei immer Farbdreher und die Farben stimmen nicht überein ... Rot wird zu Blau, Blau zu Rot usw.

Meine (bzw. ich glaub die hat Sakura hier irgendwo im Forum gepostet) ColorToHex Funktion

Delphi-Quellcode:
function ColorToHex(Col: TColor): String;
begin
  Result := '#' + IntToHex(Integer(Col), 8);
end;
Hat jemand eine Idee wie ich diese Farbdreher vermeiden kann?

MFG
Maximus

himitsu 23. Feb 2005 13:46

Re: Farbwert
 
Also Delphi und HTML haben eine andere Reinfolge bei den Farbwerten (wenn ich das noch richtig weiß), also muß das 1. und 3. Byte getauscht werden.

RGB <> BGR

Delphi-Quellcode:
function ColorToHex(Col: TColor): String;
begin
  Result := '#' + IntToHex(Byte(Col), 2) +
    IntToHex(Byte(Col shr 8), 2) +
    IntToHex(Byte(Col shr 16), 2);
end;

Steve 23. Feb 2005 14:06

Re: Farbwert
 
Hi,

das sollte inhaltlich dem Code vom "Vorposting" entsprechen:
Delphi-Quellcode:
  result := '#' + IntToHex(GetRValue(ColorToRGB(Col), 2) +
                 IntToHex(GetGValue(ColorToRGB(Col), 2) +
                 IntToHex(GetBValue(ColorToRGB(Col), 2);
GetRValue etc. liefert den jeweiligen Rot-/Grün-/Blau-Anteil einer Farbe, zu finden in der Unit Windows. ColorToRGB wandelt Konstanten wie clBtnFace etc. in Farbwerte um, siehe OH. ;)


Gruß
Stephan :dance:

Muetze1 23. Feb 2005 16:29

Re: Farbwert
 
Moin!

Hinter col 2x Klammer zu und es stimmt...

MfG
Muetze1

Steve 24. Feb 2005 09:23

Re: Farbwert
 
Zitat:

Zitat von Muetze1
Hinter col 2x Klammer zu und es stimmt...

:oops: Stimmt natürlich

Gruß
Stephan :dance:

himitsu 24. Feb 2005 11:20

Re: Farbwert
 
@Steve: Klar kenn ich diese "netten Funktionen, allerdings weigere ich mich wehement gegen "sinnlose" Funktionen.

Wozu soll das Programm 'ne Funktion aufrufen (mit Parameterübergaber, Sprüngen...), wenn es ein einfaches Shift auch macht :zwinker:



OT: Außerdem lernt man auf diese Weiße auch gleich mal den Aufbau verschiedenster Datentypen kennen, was ja in diesem Fall eventuell sogar zu einer selbstständigen Lösung hätte führen können :angel2:

Steve 24. Feb 2005 11:35

Re: Farbwert
 
Zitat:

Zitat von himitsu
@Steve: Klar kenn ich diese "netten Funktionen, allerdings weigere ich mich wehement gegen "sinnlose" Funktionen.

Stimmt.

Ich wollte eigentlich nur demonstrieren, was dahinter steckt, denn nicht jeder weiß, was Delphi-Referenz durchsuchenshr etc. macht ....und vor allem, wieso es hier aufgerufen wird. :)

Gruß
Stephan :dance:

Maximus 24. Feb 2005 15:34

Re: Farbwert
 
Hallo,

Danke! Es funktioniert nun!


MFG
Maximus


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:18 Uhr.

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