Hi
ich brauche von euch die schnellste Möglichkeit die Anzahl Pixel gleicher Farbe herauszufinden.
Ganz einfaches Beispiel:
Delphi-Quellcode:
type
TColorArray = Array of TColor;
TAnzahlArray = Array of Integer;
function CountColor(aBitmap: TBitmap; Colors: TColorArray ): TAnzahlArray ;
var
I, J, K: Integer;
Unten, Oben: Integer;
begin
Unten := Low(Colors); // Um nacher nicht so oft die Funktionen zu benutzen
Oben := High(Colors);
SetLength(Result, Succ(Oben));
for I := Unten to Oben do
Result[I] := 0;
for I := 0{oder 1?} to aBitmap.Width do
for J := 0{oder 1?} to aBitmap.Height do
for K := Unten to Oben do
if aBitmap.Canvas.Pixels[I, J] = Color[K] then
Inc(Result[K]);
end;
procedure bla;
var
Colors: TColorArray;
Anzahl: TAnzahlArray;
begin
SetLength(Colors, 2);
Colors[0] := clRed;
Colors[1] := clBlue;
Anzahl := CountColor(meinBitmap, Colors);
showmessage(Format('%d Pixel sind Rot, %d Pixel sind Blau', [Anzahl[0], Anzahl[1]));
end;
Ich hoffe ihr versteht was ich meine. Ich bin mir sicher das geht noch schneller als bei meinem Beispiel...
Hat jemand von euch ne Idee?
mfg.Dominik