gpt4 book ai didi

delphi - 如何根据屏幕上的 X、Y 坐标返回颜色?

转载 作者:行者123 更新时间:2023-12-01 19:44:51 26 4
gpt4 key购买 nike

这是针对 Delphi (7) 的。

我一直在尝试寻找适合屏幕的像素搜索器,但没有太多帮助。我最多找到了一些可以截取整个屏幕截图并将其存储在 Canvas 中的东西,但我不确定这是否真的有必要,因为唯一的目的是检查给定的协调。

我基本上只需要一些可以使其发挥作用的东西:

procedure TForm1.Button1Click(Sender: TObject);
begin
if(Checkcolor(1222,450) == 000000) then
showmessage('Black color present at coordinates');
end;

最佳答案

尝试使用以下代码:

function ColorPixel(P: TPoint): TColor;
var
DC: HDC;
begin
DC:= GetDC(0);
Result:= GetPixel(DC,P.X,P.Y);
ReleaseDC(0,DC);
end;

显示十六进制颜色的示例程序:

var
P: TPoint;
R,G,B: integer;
begin
GetCursorPos(P);
Color:= ColorPixel(P);
R := Color and $ff;
G := (Color and $ff00) shr 8;
B := (Color and $ff0000) shr 16;
ShowMessage(format('(%d,%d,%d)',[R,G,B]));
end;

如果需要特定窗口的像素,则需要使用窗口句柄修改 GetDC 调用。

获取Dc https://msdn.microsoft.com/en-us/library/windows/desktop/dd144871(v=vs.85).aspx获取像素 https://msdn.microsoft.com/en-us/library/windows/desktop/dd144909(v=vs.85).aspx

编辑:在示例中,您可以使用函数(Windows 单元)GetRValueGetGValueGetBValue 提取 RGB 分量,而不是使用位运算。例如:

R:= GetRValue(Color);

关于delphi - 如何根据屏幕上的 X、Y 坐标返回颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42205694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com