PixelSearch 偶尔找不到 PixelGetColor 找到的颜色
PixelSearch occasionally not finding colours found by PixelGetColor
我试图创建一个脚本,该脚本将在检测到颜色时执行操作,但遇到 PixelSearch 问题。
我正在使用 PixelSearch 而不是与 PixelGetColor 匹配,因为颜色是透明的,因此需要 PixelSearch Variation 功能。
在遇到无法找到肯定存在的颜色的问题后,我尝试创建一个脚本来使用 PixelGetColor 查找颜色,然后将其传递给 PixelSearch 并使用 0 变体进行搜索。
这确保颜色确实存在,脚本大部分时间都在工作,但经常以 ErrorLevel 1 响应(未找到,这应该是不可能的)。
我在非活动和活动中都工作过windows,但偶尔都失败了。
下面发布了脚本 谁能解释为什么会出现这个问题
所有测试颜色都是静态的,不会改变没有透明度的图像。
为什么会出现这个错误,可以修复吗?
CoordMode, Pixel,Screen
CoordMode,Mouse,Screen
*$PGDN::
MouseGetPos, PosX, PosY
PixelGetColor, cRGB , %PosX%, %PosY%,RGB
PixelGetColor, cBGR , %PosX%, %PosY%
PixelSearch,Colour_SearchX,Colour_SearchY,PosX+10,PosY+10,PosX-10,PosY-10,cRGB,RGB Fast
If ErrorLevel = 0
{
Search_Result:= "Found"
}
Else
{
Search_Result:= "Not Found"
}
MsgBox,% PosX ", " PosY "`nRGB: (" cRGB " ) - BGR: (" cBGR ")" "`n" Search_Result ":" cRGB " at: " Colour_SearchX "," Colour_SearchY
Return
此代码适用于我所做的更改,包括
PixelSearch,Colour_SearchX,Colour_SearchY,PosX-10,PosY-10,PosX+10,PosY+10,cRGB,RGB Fast
这是因为搜索区域编号错误(X1,Y1值大于X2,Y2)
CoordMode,Pixel,Screen
CoordMode,Mouse,Screen
*$PGDN::
MouseGetPos, PosX, PosY
PixelGetColor, cRGB , %PosX%, %PosY%,RGB
PixelGetColor, cBGR , %PosX%, %PosY%
PixelSearch,Colour_SearchX,Colour_SearchY,PosX-1,PosY-1,PosX+1,PosY+1,cRGB,50,RGB Fast
If ErrorLevel = 0
{
Search_Result:= "Found"
}
Else
{
Search_Result:= "Not Found"
}
MsgBox,% PosX ", " PosY "`nRGB: (" cRGB " ) - BGR: (" cBGR ")" "`n" Search_Result ":" cRGB " at: " Colour_SearchX "," Colour_SearchY
Return
我试图创建一个脚本,该脚本将在检测到颜色时执行操作,但遇到 PixelSearch 问题。
我正在使用 PixelSearch 而不是与 PixelGetColor 匹配,因为颜色是透明的,因此需要 PixelSearch Variation 功能。
在遇到无法找到肯定存在的颜色的问题后,我尝试创建一个脚本来使用 PixelGetColor 查找颜色,然后将其传递给 PixelSearch 并使用 0 变体进行搜索。
这确保颜色确实存在,脚本大部分时间都在工作,但经常以 ErrorLevel 1 响应(未找到,这应该是不可能的)。
我在非活动和活动中都工作过windows,但偶尔都失败了。
下面发布了脚本 谁能解释为什么会出现这个问题 所有测试颜色都是静态的,不会改变没有透明度的图像。
为什么会出现这个错误,可以修复吗?
CoordMode, Pixel,Screen
CoordMode,Mouse,Screen
*$PGDN::
MouseGetPos, PosX, PosY
PixelGetColor, cRGB , %PosX%, %PosY%,RGB
PixelGetColor, cBGR , %PosX%, %PosY%
PixelSearch,Colour_SearchX,Colour_SearchY,PosX+10,PosY+10,PosX-10,PosY-10,cRGB,RGB Fast
If ErrorLevel = 0
{
Search_Result:= "Found"
}
Else
{
Search_Result:= "Not Found"
}
MsgBox,% PosX ", " PosY "`nRGB: (" cRGB " ) - BGR: (" cBGR ")" "`n" Search_Result ":" cRGB " at: " Colour_SearchX "," Colour_SearchY
Return
此代码适用于我所做的更改,包括
PixelSearch,Colour_SearchX,Colour_SearchY,PosX-10,PosY-10,PosX+10,PosY+10,cRGB,RGB Fast
这是因为搜索区域编号错误(X1,Y1值大于X2,Y2)
CoordMode,Pixel,Screen
CoordMode,Mouse,Screen
*$PGDN::
MouseGetPos, PosX, PosY
PixelGetColor, cRGB , %PosX%, %PosY%,RGB
PixelGetColor, cBGR , %PosX%, %PosY%
PixelSearch,Colour_SearchX,Colour_SearchY,PosX-1,PosY-1,PosX+1,PosY+1,cRGB,50,RGB Fast
If ErrorLevel = 0
{
Search_Result:= "Found"
}
Else
{
Search_Result:= "Not Found"
}
MsgBox,% PosX ", " PosY "`nRGB: (" cRGB " ) - BGR: (" cBGR ")" "`n" Search_Result ":" cRGB " at: " Colour_SearchX "," Colour_SearchY
Return