A rectangular region on the screen, measured in pixels on the current screen axes. Scale/anchor control coordinate mapping across full-screen sizes without rotating through portrait coordinates or using the app viewport; runtime consumers clip the final region to the current screen after mapping and offsets. ScaleParam controls template matching inside this region. Region can be destructured as x, y, width, height.
Syntax
Region(x, y, width, height, /, scale="fixed", anchor="none", scale_param=ScaleParam())
**Applies to region coordinates**. Coordinate scale mode using full-screen dimensions on the current X/Y axes, without app viewport scaling or portrait rotation. Values: "fixed" keeps saved pixels unchanged; "auto" scales X by width and Y by height; "width" scales both axes by screen width; "height" scales both axes by screen height.
search_area = Region(120, 240, 360, 420)
left = search_area.x
top = search_area.y
w = search_area.width
h = search_area.height
scale = search_area.scale
anchor = search_area.anchor
search_area.x = 300
search_area.scale_param = ScaleParam(auto_scale=True, template_scale="LONG_EDGE")
center = search_area.middle_point
# I-unpack ang Region bilang x, y, width, height
x, y, width, height = search_area
Return the screen width of the device that created this macro, adapted to current screen orientation, when available.
Syntax
Region.macro_width()
Ibinabalik na halaga
Number? — Lapad ng screen ng macro source, o Wala kapag hindi available.
Halimbawa
macro_w = Region.macro_width()
Region.macro_height
Static Method
Return the screen height of the device that created this macro, adapted to current screen orientation, when available.
Syntax
Region.macro_height()
Ibinabalik na halaga
Number? — Taas ng screen ng macro source, o Wala kapag hindi available.
Halimbawa
macro_h = Region.macro_height()
Region.find
Method
Mag-scan sa loob ng rehiyong ito hanggang may tumugmang template o maubos ang oras. Kung walang timeout, isang scan lang ang gagawin. Gamitin ang ScreenCapture.cache_on() upang suriin ang ilang larawan sa iisang naka-pin na frame, saka cache_off() upang alisin ang pagka-pin. Para sa madalas na pagkilala gamit ang pinakabagong available na frame, gamitin din ang ScreenCapture.auto_cache_off(); kung hindi, ginagamit muli ng awtomatikong cache ang mga frame nang hanggang 100 ms. Ang pag-off nito ay nagdaragdag ng trabaho sa pagkuha at hindi garantisadong mas mabilis ang eksekusyon.
Match — Unang matagumpay na laban, o natagpuan=false kapag nag-time out.
Halimbawa
region = Region(80, 220, 420, 520)
hit = region.find("ok", 4000, 0.8, 4.0)
MacroPanel.notify(str(hit))
Region.find_multi
Method
I-scan sa loob ng rehiyong ito at ibalik ang lahat ng mga tugma para sa isang template kapag may nakitang kahit isa. Kung aalisin ang timeout, isang scan pass lang ang gagawin.
I-scan ang rehiyong ito para sa isang target na kulay gamit ang parehong raw-frame RGB tolerance rule bilang pagkilala sa kulay ng UI. Ang pinakamagandang punto ay pinili ng pinakamaliit na max RGB channel delta.
Maximum wait time in milliseconds. 0 performs one scan pass.
Opsyonal · Ayon sa posisyon o pangalan
Default:0
toleranceNumber
Allowed per-channel RGB delta from 0 to 255.
Opsyonal · Ayon sa posisyon o pangalan
Default:0
rateNumber
Scan attempts per second while waiting.
Opsyonal · Ayon sa posisyon o pangalan
Default:3
intervalNumber
Sampling step in pixels.
Opsyonal · Ayon sa posisyon o pangalan
Default:10
Ibinabalik na halaga
Match — Itugma sa punto bilang listahan[Point]; ang find_color ay bumabalik ng hindi hihigit sa isang punto.
Halimbawa
scan = Region(80, 220, 420, 520)
hit = scan.find_color("#FF4CAF50", tolerance=8, interval=4)
if hit.found:
click(hit.point[0], random=0)
Region.find_any_color
Method
I-scan ang rehiyong ito para sa maraming target na kulay. Ang bawat kulay ng input ay nag-aambag ng hindi hihigit sa isang pinakamahusay na punto, na inayos ayon sa listahan ng kulay ng input.
Maximum wait time in milliseconds. 0 performs one scan pass.
Opsyonal · Ayon sa posisyon o pangalan
Default:0
toleranceNumber
Allowed per-channel RGB delta from 0 to 255.
Opsyonal · Ayon sa posisyon o pangalan
Default:0
rateNumber
Scan attempts per second while waiting.
Opsyonal · Ayon sa posisyon o pangalan
Default:3
intervalNumber
Sampling step in pixels.
Opsyonal · Ayon sa posisyon o pangalan
Default:10
Ibinabalik na halaga
Match — Itugma sa punto bilang listahan[Point]; isang pinakamagandang punto sa bawat nakitang kulay ng input.
Halimbawa
colors = ["#FF0000", "#00FF00", "#0000FF"]
hit = Region.full_screen().find_any_color(colors, tolerance=6)
if hit.found:
click(hit, random=0)
Region.find_multi_color
Method
I-scan ang rehiyong ito para sa maraming naka-sample na posisyon ng isang target na kulay. Ang pagpasa ng isang listahan o tuple ay tinanggihan upang hindi ito tahimik na maging multi-target na paghahanap ng kulay.
Maximum wait time in milliseconds. 0 performs one scan pass.
Opsyonal · Ayon sa posisyon o pangalan
Default:0
toleranceNumber
Allowed per-channel RGB delta from 0 to 255.
Opsyonal · Ayon sa posisyon o pangalan
Default:0
rateNumber
Scan attempts per second while waiting.
Opsyonal · Ayon sa posisyon o pangalan
Default:3
intervalNumber
Sampling step in pixels.
Opsyonal · Ayon sa posisyon o pangalan
Default:10
Ibinabalik na halaga
Match — Itugma sa punto bilang listahan[Point]; Ang pagtutugma ng mga sample na punto ay pinagbukud-bukod muna gamit ang pinakamalapit na kulay.
Halimbawa
hit = Region(80, 220, 420, 520).find_multi_color("red", tolerance=4, interval=3)
if hit.found:
first = hit.point[0]
hit.highlight(color="yellow", auto_hide_ms=800)
Region.wait
Method
Maghintay hanggang mawala ang template sa rehiyong ito. Kung aalisin ang timeout, isang scan pass lang ang gagawin.
Gumuhit ng naka-highlight na parihaba para sa rehiyong ito. Sa movable=True, maaaring i-drag ng user ang rehiyon at ang parehong object ng Rehiyon ay makakatanggap ng na-update na mga coordinate ng screen. Ang muling pag-highlight sa parehong instance ng rehiyon ay papalitan ang nauna.