# ImageLayer

## Content

# Interface: ImageLayer

Image layer canvas.

## Properties

### backCanvas

```ts
readonly backCanvas: HTMLCanvasElement;
```

Canvas object to paint.

***

### backCtx

```ts
readonly backCtx: CanvasRenderingContext2D;
```

Background 2D rendering context.

***

### mainCanvas

```ts
readonly mainCanvas: HTMLCanvasElement;
```

Canvas object to paint.

***

### mainCtx

```ts
readonly mainCtx: CanvasRenderingContext2D;
```

Main 2D rendering context.

***

### name

```ts
name: string;
```

Image layer name.

***

### paintObjects

```ts
readonly paintObjects: PaintObject<PaintObjectType>[];
```

The objects in this array are drawn to the canvas.

***

### size

```ts
readonly size: Size;
```

Image layer size.

## Methods

### clear()

```ts
clear(clearCache): void;
```

Removes everything drawn before on image layer.

#### Parameters

##### clearCache

`boolean`

Indicates if should clear cache too.

#### Returns

`void`

***

### clearTempPaintCommands()

```ts
clearTempPaintCommands(): void;
```

Clear all temporary paint commands, clear and dispose the temporary canvas layer.

#### Returns

`void`

***

### dispose()

```ts
dispose(): void;
```

Clears all resources and removes image layer.

#### Returns

`void`

***

### drawObjects()

```ts
drawObjects(): Promise<void>;
```

Call this method to draw the paint objects specified in the paintObjects array onto the canvas.

#### Returns

`Promise`&lt;`void`&gt;

***

### ensureBackground()

```ts
ensureBackground(): Promise<void>;
```

Draws an original viewer image on image layer.

#### Returns

`Promise`&lt;`void`&gt;

***

### executeTempPaintCommand()

```ts
executeTempPaintCommand(cmd): void;
```

Run a temporary paint command on a separate temporary canvas layer. This method should create and display the temporary canvas layer if it doesn't exist.

#### Parameters

##### cmd

[`PaintCommand`](PaintCommand)

#### Returns

`void`

***

### getTempPaintCommands()

```ts
getTempPaintCommands(): PaintCommand[];
```

Get all temporary paint commands.

#### Returns

[`PaintCommand`](PaintCommand)[]

***

### merge()

```ts
merge(): Promise<void>;
```

Merges image layer into original viewer image.

#### Returns

`Promise`&lt;`void`&gt;

***

### saveToDataURL()

```ts
saveToDataURL(): Promise<string>;
```

Clears all resources and removes image layer.

#### Returns

`Promise`&lt;`string`&gt;

Promise with string that contains dataUrl
