> ## 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.

# Image

> Represents an image.

## Constructor

```typescript
Image(): Image
```

### Returns

`Image`

## Properties

<ResponseField name={"dimensions"} type={"[number, number]"} required>
  Returns the image 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 />

### fromBase64()

```typescript
fromBase64(base64: string): Image
```

Decodes a base64 image string into an image.

Accepts either a raw base64 payload or a data URL such as
`data:image/png;base64,...`, `data:image/jpeg;base64,...`, or
`data:image/jpg;base64,...`.

#### Parameters

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

#### Returns

`Image`

### ground()

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

Locate `concept` on this image using the given grounding model and
return absolute zero-based pixel coordinates `[x, y]`.

Equivalent to `model.ground(image, 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 />
