# Module: ol/source/Raster

This documentation is for OpenLayers v10.9.0. The latest is v.

## ol/source/Raster

### Classes

RasterSourceEvent
RasterSource

### Type Definitions

#### FauxMessageEvent{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `data` | Object | Message data.

#### Job{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `meta` | Object | Job metadata.
  `inputs` | Array.<ImageData> | Array of input data.
  `callback` | JobCallback | Called when the job is complete.

#### JobCallback()

source/Raster.js, line 148

#### MinionData{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `buffers` | Array.<ArrayBuffer> | Array of buffers.
  `meta` | Object | Operation metadata.
  `imageOps` | boolean | The operation is an image operation.
  `width` | number | The width of the image.
  `height` | number | The height of the image.

#### Operation()

source/Raster.js, line 385

  A function that takes an array of input data, performs some operation, and returns an array of output data. For `pixel` type operations, the function will be called with an array of pixels, where each pixel is an array of four numbers (`[r, g, b, a]`) in the range of 0 - 255. It should return a single pixel array. For `'image'` type operations, functions will be called with an array of ImageData and should return a single ImageData. The operations are called with a second "data" argument, which can be used for storage. The data object is accessible from raster events, where it can be initialized in "beforeoperations" and accessed again in "afteroperations".

#### Options{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `sources` | Array.<(module:ol/source/Source~Source|module:ol/layer/Layer~Layer)> | Input sources or layers.
  `operation` | Operation | undefined | Raster operation. The operation will be called with data from input sources and the output will be assigned to the raster source.
  `lib` | Object | undefined | Functions that will be made available to operations run in a worker.
  `threads` | number | undefined | By default, operations will be run in a single worker thread. To avoid using workers altogether, set `threads: 0`. For pixel operations, operations can be run in multiple worker threads. Note that there is additional overhead in transferring data to multiple workers, and that depending on the user's system, it may not be possible to parallelize the work.
  `operationType` | RasterOperationType (defaults to 'pixel') | Operation type. Supported values are `'pixel'` and `'image'`. By default, `'pixel'` operations are assumed, and operations will be called with an array of pixels from input sources. If set to `'image'`, operations will be called with an array of ImageData objects from input sources.
  `resolutions` | Array.<number> | null | undefined | Resolutions. If specified, raster operations will only be run at the given resolutions. By default, the resolutions of the first source with resolutions specified will be used, if any. Set to `null` to use any view resolution instead.

#### ProcessorOptions{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `threads` | number | Number of workers to spawn.
  `operation` | Operation | The operation.
  `lib` | Object.<string, function()> | undefined | Functions that will be made available to operations run in a worker.
  `queue` | number | The number of queued jobs to allow.
  `imageOps` | boolean (defaults to false) | Pass all the image data to the operation instead of a single pixel.

#### RasterOperationType{'pixel'} {'image'}

  Raster operation type. Supported values are `'pixel'` and `'image'`.

#### RasterSourceEventTypes{ImageSourceEventTypes} {'beforeoperations'} {'afteroperations'}