> ## Documentation Index
> Fetch the complete documentation index at: https://docs.simular.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Screenshot

> Represents a screenshot capture.

## Constructor

```typescript
Screenshot(): Screenshot
```

### Returns

`Screenshot`

## Properties

<ResponseField name={"dimensions"} type={"[number, number]"} required>
  Returns the screenshot dimensions as `[width, height]` in pixels.
</ResponseField>

## Methods

### addGrid()

```typescript
addGrid(width: number, height: number): void
```

Draws a cross-hair grid on the image.

Grid squares have the specified `width` and `height`.

#### Parameters

<ResponseField name={"width"} type={"number"} required />

<ResponseField name={"height"} type={"number"} required />

### base64()

```typescript
base64(): string
```

Returns the image encoded as a base64 data URL.

The result includes the MIME prefix, for example
`data:image/png;base64,...` or `data:image/jpeg;base64,...`.

#### Returns

`string`

### compress()

```typescript
compress(quality: number): void
```

Compress the image by converting it to JPEG with the specified quality.

The quality is a value between 1 and 100.
1 is the lowest possible quality and 100 is the highest quality.

#### Parameters

<ResponseField name={"quality"} type={"number"} required />

### ground()

```typescript
ground(model: GroundingModel, concept: string): [number, number]
```

Locate `concept` on this screenshot using the given grounding model and
return the corresponding **global physical pixel coordinates** `[x, y]`.
The output can be fed directly to primitives that expect global screen
coordinates.

Equivalent to `model.ground(screenshot, concept)`.

#### Parameters

<ResponseField name={"model"} type={"GroundingModel"} required />

<ResponseField name={"concept"} type={"string"} required />

#### Returns

`[number, number]`

### save()

```typescript
save(path: string): void
```

Path includes the file name and the extension.

#### Parameters

<ResponseField name={"path"} type={"string"} required />

### shrink()

```typescript
shrink(nwidth: number, nheight: number): void
```

Resizes this image if it is larger than the desired size. The image's
aspect ratio is preserved. The image is scaled to the maximum
possible size that fits within the bounds specified by nwidth and
nheight.

This method operates on pixel channel values directly without taking
into account color space data.

We commonly use this to resize the image to 1920x1080.

#### Parameters

<ResponseField name={"nwidth"} type={"number"} required />

<ResponseField name={"nheight"} type={"number"} required />

### toGlobalPhysicalPixels()

```typescript
toGlobalPhysicalPixels(x: number, y: number, coordType: ScreenshotCoordinateType): [number, number]
```

Converts a point in this screenshot to global physical pixel
coordinates.

Screenshots may represent only part of a display, and displays may
use different scale factors. Use this to map `(x, y)` to the
corresponding global physical pixel position (for example, when
moving the mouse to the same on-screen point).

See `ScreenshotCoordinateType` for how `coord_type` affects
interpretation of `(x, y)`.

#### Parameters

<ResponseField name={"x"} type={"number"} required />

<ResponseField name={"y"} type={"number"} required />

<ResponseField name={"coordType"} type={"ScreenshotCoordinateType"} required />

#### Returns

`[number, number]`
