AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Farbwert

Ein Thema von Maximus · begonnen am 23. Feb 2005 · letzter Beitrag vom 24. Feb 2005
Antwort Antwort
Maximus

Registriert seit: 26. Okt 2003
169 Beiträge
 
#1

Farbwert

  Alt 23. Feb 2005, 14:35
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: Farbwert

  Alt 23. Feb 2005, 14:46
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;
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#3

Re: Farbwert

  Alt 23. Feb 2005, 15:06
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
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Farbwert

  Alt 23. Feb 2005, 17:29
Moin!

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

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#5

Re: Farbwert

  Alt 24. Feb 2005, 10:23
Zitat von Muetze1:
Hinter col 2x Klammer zu und es stimmt...
Stimmt natürlich

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: Farbwert

  Alt 24. Feb 2005, 12:20
@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



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
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#7

Re: Farbwert

  Alt 24. Feb 2005, 12:35
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
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Maximus

Registriert seit: 26. Okt 2003
169 Beiträge
 
#8

Re: Farbwert

  Alt 24. Feb 2005, 16:34
Hallo,

Danke! Es funktioniert nun!


MFG
Maximus
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:20 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