AGB  ·  Datenschutz  ·  Impressum  







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

WebSafe Farben

Ein Thema von blackdrake · begonnen am 8. Aug 2006 · letzter Beitrag vom 9. Aug 2006
Antwort Antwort
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#1

WebSafe Farben

  Alt 8. Aug 2006, 23:00
Diese Funktion sucht die näheste Websafe-Farbe:

Delphi-Quellcode:
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;
Weitere Informationen: http://de.wikipedia.org/wiki/Farbtabellen_im_Internet
Daniel Marschall
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: WebSafe Farben

  Alt 9. Aug 2006, 11:40
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.


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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: WebSafe Farben

  Alt 9. Aug 2006, 12:21
Zitat von himitsu:
[...]dann erkennt man vielleicht sogar noch 'ne Gesetzmäßigkeit in den Werten?
Durch eine minimale Verschiebung der Grenze zwischen den beiden ersten Bereichen kann man sie erzwingen:

Delphi-Quellcode:
function WebSafeVal (aValue: Byte): Byte;
begin
  Result := 51 * ((aValue + 25) div 51);
end;
Gruß Hawkeye
  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:55 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