screen 
In CatScript, colors are represented in hexadecimal format (int type). For example:
| Name | Hex | CatScript Representation | 
|---|---|---|
| Red | #FF0000 | 0xFF0000 | 
| Green | #00FF00 | 0x00FF00 | 
| Blue | #0000FF | 0x0000FF | 
screen.size() 
Get the screen size.
python
screen.size() -> tuple[int, int]Arguments 
None.
Return 
| Type | Description | 
|---|---|
| tuple[int, int] | The screen size. | 
Example 
python
from catscript import screen, sys
if __name__ == "__main__":
    (w, h) = screen.size()
    sys.log(f"Screen size: ({w}, {h}).")screen.color() 
Get the color of a specified coordinate.
python
screen.color(x: int, y: int) -> intArguments 
| Name | Type | Default | Description | 
|---|---|---|---|
| x | int | Coordinate x. | |
| y | int | Coordinate y. | 
Return 
| Type | Description | 
|---|---|
| int | The color. | 
Example 
python
from catscript import screen, sys
if __name__ == "__main__":
    color = screen.color(100, 100)
    sys.log(f"The color is {color:#06x}.")screen.is_color() 
Determine if the color at the specified coordinate meets the condition.
TIP
You can quickly generate the code for this function using the code template feature in CatScript's developer tools.
python
screen.is_color(colors: list[tuple[int, int, int]], precision: float = 1.0) -> boolArguments 
| Name | Type | Default | Description | 
|---|---|---|---|
| colors | list[tuple[int, int, int]] | The list of coordinate colors to compare. | |
| precision | float | 1.0 | The precision when comparing colors, ranging from 0.1 to 1.0. | 
Return 
| Type | Description | 
|---|---|
| bool | Whether it meets the condition. | 
Example 
python
from catscript import screen, sys
if __name__ == "__main__":
    if screen.is_color(
        [
            (378, 474, 0x4D92B1),
            (191, 357, 0x96988B),
            (397, 232, 0x21808A),
        ],
        precision=0.9,
    ):
        sys.log("Yes.")
    else:
        sys.log("No.")screen.find_color() 
Find coordinates that meet the condition.
TIP
You can quickly generate the code for this function using the code template feature in CatScript's developer tools.
python
screen.find_color(color: int, offset: list[tuple[int, int, int]] = [], precision: float = 1.0, region: tuple[int, int, int, int] = (0, 0, -1, -1), max_miss: int = 0, all: bool = False) -> list[tuple[int, int]]Arguments 
| Name | Type | Default | Description | 
|---|---|---|---|
| color | int | The color to find. | |
| offset | list[tuple[int, int, int]] | [] | Additional conditions added to the colors being searched. | 
| precision | float | 1.0 | The precision when comparing colors, ranging from 0.1 to 1.0. | 
| region | tuple[int, int, int, int] | (0, 0, -1, -1) | The search range, formatted as (top-left x, top-left y, bottom-right x, bottom-right y), where the last two values can be -1 to represent the width and height of the screen. | 
| max_miss | int | 0 | The maximum allowable difference in quantity when comparing the offset argument. | 
| all | bool | False | Whether to return all coordinates that meet the conditions. | 
Return 
| Type | Description | 
|---|---|
| list[tuple[int, int]] | The coordinates that meet the conditions. A coordinate value of -1 indicates that it was not found. | 
Example 
python
from catscript import screen, sys
if __name__ == "__main__":
    # Find the red color on the screen.
    (x, y) = screen.find_color(0xFF0000)[0]
    if x != -1 and y != -1:
        sys.log(f"Color is at ({x}, {y}).")
    else:
        sys.log("Not found.")python
from catscript import screen, sys
if __name__ == "__main__":
    # Find red color on the screen, assuming its coordinates are (x, y), with the requirement:
    # - the color at the position (x + 10, y - 10) is green
    # - the color at the position (x + 20, y + 30) is blue.
    (x, y) = screen.find_color(
        0xFF0000, offset=[(10, -10, 0x00FF00), (20, 30, 0x0000FF)]
    )[0]
    if x != -1 and y != -1:
        sys.log(f"Color is at ({x}, {y}).")
    else:
        sys.log("Not found.")python
from catscript import screen, sys
if __name__ == "__main__":
    # Find red color on the screen region (0, 0, 500, 500), assuming its coordinates are (x, y), with the requirement:
    # - the color at the position (x + 10, y - 10) is green.
    # - the color at the position (x + 20, y + 30) is blue.
    #
    # Additionally:
    # - The precision is 0.9 when comparing colors.
    # - Allowing one point's color to not meet the condition.
    # - Return all coordinates that meet the condition.
    coordinates = screen.find_color(
        0xFF0000,
        offset=[(10, -10, 0x00FF00), (20, 30, 0x0000FF)],
        precision=0.9,
        region=(0, 0, 500, 500),
        max_miss=1,
        all=True,
    )
    if coordinates[0][0] != -1 and coordinates[0][1] != -1:
        for index, (x, y) in coordinates:
            sys.log(f"<{index}>: (${x}, ${y}).")
    else:
        sys.log("Not found.")screen.find_image() 
Find image on the screen.
python
screen.find_image(path: str, ignore: list[int] = [], precision: float = 1.0, region: tuple[int, int, int, int] = (0, 0, -1, -1), max_miss: int = 0, all: bool = False) -> list[tuple[int, int]]Arguments 
| Name | Type | Default | Description | 
|---|---|---|---|
| path | str | The path of image to find. | |
| ignore | list[int] | [] | Colors ignored when comparing images. | 
| precision | float | 1.0 | The precision when comparing colors, ranging from 0.1 to 1.0. | 
| region | tuple[int, int, int, int] | (0, 0, -1, -1) | The search range, formatted as (top-left x, top-left y, bottom-right x, bottom-right y), where the last two values can be -1 to represent the width and height of the screen. | 
| max_miss | int | 0 | The maximum allowable difference in quantity when comparing the image. | 
| all | bool | False | Whether to return all coordinates that meet the conditions. | 
Return 
| Type | Description | 
|---|---|
| list[tuple[int, int]] | The coordinates that meet the conditions. A coordinate value of -1 indicates that it was not found. | 
Example 
python
from catscript import screen, sys
if __name__ == "__main__":
    # Find the image of the path /tmp/a.png on the screen region (0, 0, 500, 500).
    #
    # Additionally:
    # - Ignore white and black color when comparing images, treating them as transparent color.
    # - The precision is 0.9 when comparing colors of image.
    # - Allowing one point's color to not meet the condition.
    # - Return all coordinates that meet the condition.
    (x, y) = screen.find_image(
        "/tmp/a.png",
        ignore=[0xFFFFFF, 0x000000],
        precision=0.9,
        region=(0, 0, 500, 500),
        max_miss=1,
        all=False,
    )[0]
    if x != -1 and y != -1:
        sys.log(f"Image is at ({x}, {y}).")
    else:
        sys.log("Not found.")screen.snapshot() 
Save the screen snapshot to a specified path.
python
screen.snapshot(path: str, region: tuple[int, int, int, int] = (0, 0, -1, -1), scale: float = 1.0) -> NoneArguments 
| Name | Type | Default | Description | 
|---|---|---|---|
| path | str | The path to save the screen snapshot. | |
| region | tuple[int, int, int, int] | (0, 0, -1, -1) | The search range, formatted as (top-left x, top-left y, bottom-right x, bottom-right y), where the last two values can be -1 to represent the width and height of the screen. | 
| scale | float | 1.0 | Screenshot scaling ratio, ranging from 0.1 to 1.0. | 
Return 
| Type | Description | 
|---|---|
| list[tuple[int, int]] | The coordinates that meet the conditions. A coordinate value of -1 indicates that it was not found. | 
Example 
python
from catscript import screen
if __name__ == "__main__":
    screen.snapshot("/tmp/snapshot.png", region=(0, 0, 500, 500), scale=0.5)