#
utils/image

Helper module for image processing.

These functions and classes are only used internally, meaning an end-user shouldn’t need to access anything here.

- utils/image
  - .RawImage
    - `new RawImage(data, width, height, channels)`
    - instance
      - `.grayscale()` ⇒ `RawImage`
      - `.rgb()` ⇒ `RawImage`
      - `.rgba()` ⇒ `RawImage`
      - `.resize(width, height, options)` ⇒ `Promise.<RawImage>`
      - `._update(data, width, height, channels)`
      - `.clone()` ⇒ `RawImage`
      - `.convert(numChannels)` ⇒ `RawImage`
      - `.save(path, [mime])`
    - static
      - `.read(input)` ⇒ `*`
      - `.fromURL(url)` ⇒ `Promise.<RawImage>`
      - `.fromBlob(blob)` ⇒ `Promise.<RawImage>`

##
utils/image.RawImage

Kind: static class of `utils/image`

- .RawImage
  - `new RawImage(data, width, height, channels)`
  - instance
    - `.grayscale()` ⇒ `RawImage`
    - `.rgb()` ⇒ `RawImage`
    - `.rgba()` ⇒ `RawImage`
    - `.resize(width, height, options)` ⇒ `Promise.<RawImage>`
    - `._update(data, width, height, channels)`
    - `.clone()` ⇒ `RawImage`
    - `.convert(numChannels)` ⇒ `RawImage`
    - `.save(path, [mime])`
  - static
    - `.read(input)` ⇒ `*`
    - `.fromURL(url)` ⇒ `Promise.<RawImage>`
    - `.fromBlob(blob)` ⇒ `Promise.<RawImage>`

###
`new RawImage(data, width, height, channels)`

Create a new `RawImage` object.

Param | Type | Description
--- | --- | ---
data | `Uint8ClampedArray` | The pixel data.
width | `number` | The width of the image.
height | `number` | The height of the image.
channels | `1` | `2` | `3` | `4` | The number of channels.

###
`rawImage.grayscale()` ⇒ `RawImage`

Convert the image to grayscale format.

Kind: instance method of `RawImage`
Returns: `RawImage` - `this` to support chaining.

###
`rawImage.rgb()` ⇒ `RawImage`

Convert the image to RGB format.

Kind: instance method of `RawImage`
Returns: `RawImage` - `this` to support chaining.

###
`rawImage.rgba()` ⇒ `RawImage`

Convert the image to RGBA format.

Kind: instance method of `RawImage`
Returns: `RawImage` - `this` to support chaining.

###
`rawImage.resize(width, height, options)` ⇒ `Promise.<RawImage>`

Resize the image to the given dimensions. This method uses the canvas API to perform the resizing.

Kind: instance method of `RawImage`
Returns: `Promise.<RawImage>` - `this` to support chaining.

Param | Type | Description
--- | --- | ---
width | `number` | The width of the new image.
height | `number` | The height of the new image.
options | `Object` | Additional options for resizing.
[options.resample] | `0` | `1` | `2` | `3` | `4` | `5` | `string` | The resampling method to use.

###
`rawImage._update(data, width, height, channels)`

Helper method to update the image data.

Kind: instance method of `RawImage`

Param | Type | Default | Description
--- | --- | --- | ---
data | `Uint8ClampedArray` |  | The new image data.
width | `number` |  | The new width of the image.
height | `number` |  | The new height of the image.
channels | `1` | `2` | `3` | `4` | `` | The new number of channels of the image.

###
`rawImage.clone()` ⇒ `RawImage`

Clone the image

Kind: instance method of `RawImage`
Returns: `RawImage` - The cloned image

###
`rawImage.convert(numChannels)` ⇒ `RawImage`

Helper method for converting image to have a certain number of channels

Kind: instance method of `RawImage`
Returns: `RawImage` - `this` to support chaining.

Param | Type | Description
--- | --- | ---
numChannels | `number` | The number of channels. Must be 1, 3, or 4.

###
`rawImage.save(path, [mime])`

Save the image to the given path. This method is only available in environments with access to the FileSystem.

Kind: instance method of `RawImage`

Param | Type | Default | Description
--- | --- | --- | ---
path | `string` | `Buffer` | `URL` |  | The path to save the image to.
[mime] | `string` | `"'image/png'"` | The mime type of the image.

###
`RawImage.read(input)` ⇒ `*`

Helper method for reading an image from a variety of input types.

Kind: static method of `RawImage`
Returns: `*` - The image object.

Example: Read image from a URL.

    let image = await RawImage.read('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg');
    // test

Param | Type
--- | ---
input | `RawImage` | `string` | `URL`

###
`RawImage.fromURL(url)` ⇒ `Promise.<RawImage>`

Read an image from a URL or file path.

Kind: static method of `RawImage`
Returns: `Promise.<RawImage>` - The image object.

Param | Type | Description
--- | --- | ---
url | `string` | `URL` | The URL or file path to read the image from.

###
`RawImage.fromBlob(blob)` ⇒ `Promise.<RawImage>`

Helper method to create a new Image from a blob.

Kind: static method of `RawImage`
Returns: `Promise.<RawImage>` - The image object.

Param | Type | Description
--- | --- | ---
blob | `Blob` | The blob to read the image from.