Einzelnen Beitrag anzeigen

dominikkv

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

Re: Pixel gleicher Farbe zählen

  Alt 22. Jun 2008, 19:47
hey danke für eure Antworten

ich hab das nun so hingepfrimelt:
Delphi-Quellcode:
type
  TLine = TRGBTriple;

function TPaintEngine.CountColor(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 fBuffer.Height - 1 do
    begin
      Line := fBuffer.ScanLine[I];
      for J := 1 to fBuffer.Width - 1 do
        begin
          for K := Unten to Oben do
            if RGB(line^.rgbtRed,line^.rgbtGreen,line^.rgbtBlue) = Colors[k] then
              Inc(Result[K]);
          Inc(Line);
        end;
    end;
end;
Ergebnis: braucht ca doppelt so viel Zeit wie die Methode über Pixels[I, J] und liefert zudem noch falsche Werte.
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat