Channel manipulation
removeAlpha
Section titled “removeAlpha”removeAlpha() ⇒
Sharp
Remove alpha channels, if any. This is a no-op if the image does not have an alpha channel.
See also flatten.
Example
sharp('rgba.png') .removeAlpha() .toFile('rgb.png', function(err, info) { // rgb.png is a 3 channel image without an alpha channel });ensureAlpha
Section titled “ensureAlpha”ensureAlpha([alpha]) ⇒
Sharp
Ensure the output image has an alpha transparency channel. If missing, the added alpha channel will have the specified transparency level, defaulting to fully-opaque (1). This is a no-op if the image already has an alpha channel.
Throws:
ErrorInvalid alpha transparency level
Since: 0.21.2
| Param | Type | Default | Description |
|---|---|---|---|
| [alpha] | number | 1 | alpha transparency level (0=fully-transparent, 1=fully-opaque) |
Example
// rgba.png will be a 4 channel image with a fully-opaque alpha channelawait sharp('rgb.jpg') .ensureAlpha() .toFile('rgba.png')Example
// rgba is a 4 channel image with a fully-transparent alpha channelconst rgba = await sharp(rgb) .ensureAlpha(0) .toBuffer();extractChannel
Section titled “extractChannel”extractChannel(channel) ⇒
Sharp
Extract a single channel from a multi-channel image.
The output colourspace will be either b-w (8-bit) or grey16 (16-bit).
Throws:
ErrorInvalid channel
| Param | Type | Description |
|---|---|---|
| channel | number | string | zero-indexed channel/band number to extract, or red, green, blue or alpha. |
Example
// green.jpg is a greyscale image containing the green channel of the inputawait sharp(input) .extractChannel('green') .toFile('green.jpg');Example
// red1 is the red value of the first pixel, red2 the second pixel etc.const [red1, red2, ...] = await sharp(input) .extractChannel(0) .raw() .toBuffer();joinChannel
Section titled “joinChannel”joinChannel(images, options) ⇒
Sharp
Join one or more channels to the image.
The meaning of the added channels depends on the output colourspace, set with toColourspace().
By default the output image will be web-friendly sRGB, with additional channels interpreted as alpha channels.
Channel ordering follows vips convention:
- sRGB: 0: Red, 1: Green, 2: Blue, 3: Alpha.
- CMYK: 0: Magenta, 1: Cyan, 2: Yellow, 3: Black, 4: Alpha.
Buffers may be any of the image formats supported by sharp.
For raw pixel input, the options object should contain a raw attribute, which follows the format of the attribute of the same name in the sharp() constructor.
Throws:
ErrorInvalid parameters
| Param | Type | Description |
|---|---|---|
| images | Array.<(string|Buffer)> | string | Buffer | one or more images (file paths, Buffers). |
| options | Object | image options, see sharp() constructor. |
bandbool
Section titled “bandbool”bandbool(boolOp) ⇒
Sharp
Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image.
Throws:
ErrorInvalid parameters
| Param | Type | Description |
|---|---|---|
| boolOp | string | one of and, or or eor to perform that bitwise operation, like the C logic operators &, ` |
Example
sharp('3-channel-rgb-input.png') .bandbool(sharp.bool.and) .toFile('1-channel-output.png', function (err, info) { // The output will be a single channel image where each pixel `P = R & G & B`. // If `I(1,1) = [247, 170, 14] = [0b11110111, 0b10101010, 0b00001111]` // then `O(1,1) = 0b11110111 & 0b10101010 & 0b00001111 = 0b00000010 = 2`. });