![]() |
WebSafe Farben
Diese Funktion sucht die näheste Websafe-Farbe:
Delphi-Quellcode:
Weitere Informationen:
function WebSafeColor(inp: TColor): TColor;
function WebSafeVal(int: integer): integer; begin result := 0; case int of 0, 51, 102, 153, 204, 255: result := int; else begin if (int <= 26) then result := 0 else if (int > 26) and (int <= 76) then result := 51 else if (int > 76) and (int <= 127) then result := 102 else if (int > 127) and (int <= 178) then result := 153 else if (int > 178) and (int <= 229) then result := 204 else if (int > 229) then result := 255; end; end; end; begin result := rgb(WebSafeVal(GetRValue(inp)), WebSafeVal(GetGValue(inp)), WebSafeVal(GetBValue(inp))); end; ![]() |
Re: WebSafe Farben
Den RangeTest hätte man sich eh sparen können, da jasowieso nur ein Byte hingeschickt wird, also die grenzen sowieso nie über-/unterschritten werden,
aber die Typumwandlung (Byte<>Integer) spart man sich zweimal. :zwinker: ich glaub mit Hexadezimalwerten würde das och nicht schlecht rüberkommen, dann erkennt man vielleicht sogar noch 'ne Gesetzmäßigkeit in den Werten?
Delphi-Quellcode:
function WebSafeVal(int: Byte): Byte;
begin case int of 0..26: Result := 0; 27..76: Result := 51; 77..127: Result := 102; 128..178: Result := 153; 179..229: Result := 209; else Result := 255; end; end; |
Re: WebSafe Farben
Zitat:
Delphi-Quellcode:
Gruß Hawkeye
function WebSafeVal (aValue: Byte): Byte;
begin Result := 51 * ((aValue + 25) div 51); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 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 by Thomas Breitkreuz