Thema: Delphi Problem mit RGB-Suchtool

Einzelnen Beitrag anzeigen

Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Problem mit RGB-Suchtool

  Alt 5. Mär 2008, 20:02
Ich habe auch mal sowas programmiert - einen Bot für Hier im Forum suchenHeiliger Damm

Ich nehme mal an, du hast das Handle bereits, dann musst du dir nen DC besorgen (Hast du getan) und ...

Dewr einzige untershcied ist - soweit ich das jetzt auf den 1. Blick sehe - dass du mit GetPixel arbeitetst ....

Delphi-Quellcode:
BitBlt(Bild.Canvas.Handle, 0, 0, CopyWidth, CopyHeight, HDdc, 0, 0, SRCCOPY); // Kopiert das Bild des Spiels in ein Bitmap

  index := 0;
  SetLength(Points, 10);


  GetWindowRect(HDwnd, HDrect);
    HDrect.Top := HDrect.Top + GetSystemMetrics(SM_CYCAPTION);
    for i := 0 to Bild.Height - 1 do
    begin
      Pixel := Bild.ScanLine[i];
      for j := 0 to Bild.Width - 1 do
      begin
        if (Pixel^.rgbtRed in [SpotRed-Toleranz .. SpotRed+Toleranz]) and (Pixel^.rgbtGreen in [SpotGreen-Toleranz .. SpotGreen+Toleranz]) and (Pixel^.rgbtBlue in [SpotBlue-Toleranz .. SpotBlue+Toleranz]) then
        begin
          Bild.Canvas.Ellipse(j - 25, i - 25, j + 25, i + 25); // "markiert" den Fundort (X=j, Y=i)

        end;
        Inc(Pixel);
      end;
Versuch mal 3 Dinge:
Kopier den DC, den du hast, auf dein Form in ein Image - ob du auch das richtige hast
Delphi-Quellcode:
StretchBlt(PaintBox1.Canvas.Handle,
    0,
    0,
    PaintBox1.Width,
    PaintBox1.Height,
    Bild.Canvas.Handle,
    0,
    0,
    CopyWidth,
    CopyHeight,
    SRCCOPY);
Debug das durch, und schau mal was da beim Verglich schiefläuft
keine Ahnung ^^
  Mit Zitat antworten Zitat