Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
Delphi 2007 Professional
|
Re: Pixel gleicher Farbe zählen
22. Jun 2008, 20:37
Zitat von littleDave:
In Bitmaps werden die RGB-Werte anders herum gespeichert (BGR):
Delphi-Quellcode:
Line^[1] = Blau
Line^[2] = Grün
Line^[3] = Rot
Trotzdem falsche Werte:
Delphi-Quellcode:
type
TLine = array [1..3] of Byte;
function CountColor(aBitmap: TBitmap; Colors: TColorArray): TAnzahlArray;
var
I, J, K: Integer;
Unten, Oben: Integer;
Line: ^TLine;
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 := 1 to aBitmap.Height - 1 do
begin
Line := aBitmap.ScanLine[I];
for J := 1 to aBitmap.Width - 1 do
begin
for K := Unten to Oben do
if RGB(line^[3],line^[2],line^[1]) = Colors[k] then
Inc(Result[K]);
Inc(Line);
end;
end;
end;
Dominik Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
|
|
Zitat
|