小编XYZ*_*XYZ的帖子

PixelSearch功能效率很低,我该如何优化呢?

我目前在循环中截取一个区域的屏幕截图,然后在其中搜索4个像素.这些像素的颜色相同 - 红色$ 001300FF .使用的变量在OnCreate事件中定义和初始化:

//The variables for the area:
ScanL := 500; // Left
ScanR := 800; // Right
ScanT := 180; // Top
ScanB := 400; // Bottom

screenshot: TBitMap;
canvas : TCanvas;
Run Code Online (Sandbox Code Playgroud)

要截取屏幕截图,我使用以下功能:

procedure TFormMain.GetSCREENSHOT(var a: TBitMap);
var
  Locked: Boolean;
begin
  Locked := Canvas.TryLock;
  try
    screenshot.Canvas.CopyRect(screenshot.Canvas.ClipRect, Canvas, Rect(ScanL, ScanT, ScanR, ScanB)); 
  finally
    if Locked then
      Canvas.Unlock;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

全局定义的变量" screenshot:TBitMap "将传递给GetSCREENSHOT函数.要搜索这4个像素,我只是做了一个新手会做的事情:

   function TFormMain.findImage : Boolean;
    var
      x,y : Integer;
    begin
      Result := false; …
Run Code Online (Sandbox Code Playgroud)

delphi performance canvas

4
推荐指数
1
解决办法
262
查看次数

标签 统计

canvas ×1

delphi ×1

performance ×1