Global ObjectScanning and DetectionSingleton Global

Capture

The screen-capture session: grabs areas as Base64 images (for AI.askVision) and reports the session state.

Documented for app version 1.0.51Updated:

Detailed Explanation

This section explains when to use the API, how to call it, and which structures it works best with in production flow.

How To Call It

Capture is a singleton global table: call its functions with a dot (Capture.<method>(...)).

When To Use It

In detection flow, refresh the screen with Snap.screenRefresh() first, then narrow the search area and confidence using Region and FindParam.

Parameters and Return

Capture offers 5 methods; each method page lists its parameters and return value.

Best Combined With

It is typically combined with Snap, Region, Asset, and FindParam; you can feed the result into quickTap(), click(), or a follow-up OCR step.

Example Usage

The snippet below is a starter pattern that can be applied directly in runtime flow.

local image = Capture.regionToBase64(Region(0, 0, 540, 960))
local answer = AI.askVision("What button is shown?", image)

Copyable Progressive Examples

From foundation to combined usage, each level is provided as a separate code block so you can copy the level you need and adapt it directly.

Foundation

Shows the shortest direct way to call the API.

Foundation
local image = Capture.regionToBase64(Region(0, 0, 540, 960))
local answer = AI.askVision("What button is shown?", image)

Simple

Wraps the base call with minimal flow control.

Simple
local image = Capture.regionToBase64(Region(0, 0, 540, 960))
local answer = AI.askVision("What button is shown?", image)

-- Continue with one focused method on the object.

Practical Flow

A practical pattern for real macros with pcall, logging, and guards.

Practical Flow
local image = Capture.regionToBase64(Region(0, 0, 540, 960))
local answer = AI.askVision("What button is shown?", image)
local note = "Capture overview loaded"
print(note)

Detailed

This level packages the API into a reusable helper with error reporting.

Detailed
-- In detection flow, refresh the screen with Snap.screenRefresh() first, then narrow the search area and confidence using Region and FindParam.
local function run_capture_step()
  local image = Capture.regionToBase64(Region(0, 0, 540, 960))
  local answer = AI.askVision("What button is shown?", image)
end

local ok, err = pcall(run_capture_step)
if not ok then
  toast("Step failed")
  print(err)
end

Combined

Combines the API with related structures to form a more realistic workflow.

Combined
Snap.screenRefresh()
local image = Capture.regionToBase64(Region(0, 0, 540, 960))
local answer = AI.askVision("What button is shown?", image)

local target = Region():find(Asset.image("target"), FindParam.timeout(3000))
if target then
  quickTap(target)
end
toast("Detection step completed")