Thema: Delphi Toleranzen von Farben

Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#9

Re: Toleranzen von Farben

  Alt 14. Mai 2009, 11:35
Ich habe mal schnell eine Funktion geschrieben (für Fehlerfreiheit und Performance übernehme ich allerdings kein Garantie):
Delphi-Quellcode:
function SimilarColors(FirstColor, SecondColor: TColor;
                       Percentage: byte = 5): Boolean;

    function ColorInRange(first, second: byte): Boolean;
    begin
      Result := abs(first - second) <= Round(MAXBYTE / 100 * Percentage);
    end;

var R1,R2,G1,G2,B1,B2: byte;
begin
  R1 := GetRValue(FirstColor);
  R2 := GetRValue(SecondColor);
  G1 := GetGValue(FirstColor);
  G2 := GetGValue(SecondColor);
  B1 := GetBValue(FirstColor);
  B2 := GetBValue(SecondColor);
  Result := ColorInRange(R1,R2) and ColorInRange(G1,G2) and ColorInRange(B1,B2);
end;
In kurzen Tests sah das ganz gut aus, aber ich kann mich auch irgendwo verrechnet haben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat