Einzelnen Beitrag anzeigen

Blamaster

Registriert seit: 20. Jul 2007
230 Beiträge
 
#33

Re: Farbe von Bildschirminhalt ermitteln ?

  Alt 19. Jul 2009, 14:26
So,

nach einigem geteste möchte ich nun noch eine Zusatzfunktion verbauen.

Momentan Scanne ich ja die Pixel wie folgt:

Delphi-Quellcode:
for y := 0 to Screenshot.Height - 1 do
  begin
    for x := 0 to Screenshot.Width - 1 do
    begin
      Color := WinColor(Screenshot.Pixel[x, y]);
      ColorArray_r[pixelcount] := GetRValue(Color);
      ColorArray_g[pixelcount] := GetGValue(Color);
      ColorArray_b[pixelcount] := GetBValue(Color);
      inc(pixelcount);
    end;
  end;
Problem ist nun das wenn der Screenshot beispielsweise 150 x 150 px groß ist 22500 Pixel "gescannt" werden und das ist etwas zu viel.

Deswegen wollte ich nun folgendes vorgeben. 1. Größe des Screenshots 2. Anzahl der zu "scannenden" Pixel, diese sollen dann gleichmäßig über den Screenshot verteilt werden.

Nun habe ich dabei aber ein gewaltiges Schleifenproblem.
Wie kann ich eine Schleife erstellen die die eine variable Anzahl an punkten gleichmäßig in einem in der größe variablen Quadrat scannt ?

Um überhaupt erstmal weniger pixel zu scannen hatte ich folgedes versucht:

Delphi-Quellcode:
  while y <= Screenshot.Height - 1 do
  begin
    y := y + 5;
    for x := 0 to Screenshot.Width - 1 do
    begin
      inc(pixelcount);
      Color := WinColor(Screenshot.Pixel[x, y]);

      ColorArray_r[pixelcount] := GetRValue(Color);
      ColorArray_g[pixelcount] := GetGValue(Color);
      ColorArray_b[pixelcount] := GetBValue(Color);
    end;
  end;
So wollte ich jetzt nur jede 5. Reihe der y Achse scannen was allerings zu einem Exception Error führt.

Ich hoffe jemand kann behilflich sein

mfg Yannic
  Mit Zitat antworten Zitat