Einzelnen Beitrag anzeigen

dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Pixel gleicher Farbe zählen

  Alt 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!
  Mit Zitat antworten Zitat