mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 18:40:16 +02:00
146 lines
4.0 KiB
Markdown
146 lines
4.0 KiB
Markdown
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
|
|
|
|
## removeAlpha
|
|
|
|
Remove alpha channel, if any. This is a no-op if the image does not have an alpha channel.
|
|
|
|
See also [flatten][1].
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
sharp('rgba.png')
|
|
.removeAlpha()
|
|
.toFile('rgb.png', function(err, info) {
|
|
// rgb.png is a 3 channel image without an alpha channel
|
|
});
|
|
```
|
|
|
|
Returns **Sharp**
|
|
|
|
## ensureAlpha
|
|
|
|
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.
|
|
|
|
### Parameters
|
|
|
|
* `alpha` **[number][2]** alpha transparency level (0=fully-transparent, 1=fully-opaque) (optional, default `1`)
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
// rgba.png will be a 4 channel image with a fully-opaque alpha channel
|
|
await sharp('rgb.jpg')
|
|
.ensureAlpha()
|
|
.toFile('rgba.png')
|
|
```
|
|
|
|
```javascript
|
|
// rgba is a 4 channel image with a fully-transparent alpha channel
|
|
const rgba = await sharp(rgb)
|
|
.ensureAlpha(0)
|
|
.toBuffer();
|
|
```
|
|
|
|
* Throws **[Error][3]** Invalid alpha transparency level
|
|
|
|
Returns **Sharp**
|
|
|
|
**Meta**
|
|
|
|
* **since**: 0.21.2
|
|
|
|
## extractChannel
|
|
|
|
Extract a single channel from a multi-channel image.
|
|
|
|
### Parameters
|
|
|
|
* `channel` **([number][2] | [string][4])** zero-indexed channel/band number to extract, or `red`, `green`, `blue` or `alpha`.
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
// green.jpg is a greyscale image containing the green channel of the input
|
|
await sharp(input)
|
|
.extractChannel('green')
|
|
.toFile('green.jpg');
|
|
```
|
|
|
|
```javascript
|
|
// red1 is the red value of the first pixel, red2 the second pixel etc.
|
|
const [red1, red2, ...] = await sharp(input)
|
|
.extractChannel(0)
|
|
.raw()
|
|
.toBuffer();
|
|
```
|
|
|
|
* Throws **[Error][3]** Invalid channel
|
|
|
|
Returns **Sharp**
|
|
|
|
## joinChannel
|
|
|
|
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.
|
|
|
|
### Parameters
|
|
|
|
* `images` **([Array][5]<([string][4] | [Buffer][6])> | [string][4] | [Buffer][6])** one or more images (file paths, Buffers).
|
|
* `options` **[Object][7]** image options, see `sharp()` constructor.
|
|
|
|
<!---->
|
|
|
|
* Throws **[Error][3]** Invalid parameters
|
|
|
|
Returns **Sharp**
|
|
|
|
## bandbool
|
|
|
|
Perform a bitwise boolean operation on all input image channels (bands) to produce a single channel output image.
|
|
|
|
### Parameters
|
|
|
|
* `boolOp` **[string][4]** one of `and`, `or` or `eor` to perform that bitwise operation, like the C logic operators `&`, `|` and `^` respectively.
|
|
|
|
### Examples
|
|
|
|
```javascript
|
|
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`.
|
|
});
|
|
```
|
|
|
|
* Throws **[Error][3]** Invalid parameters
|
|
|
|
Returns **Sharp**
|
|
|
|
[1]: /api-operation#flatten
|
|
|
|
[2]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
|
|
|
|
[3]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error
|
|
|
|
[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
|
|
|
|
[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
|
|
|
|
[6]: https://nodejs.org/api/buffer.html
|
|
|
|
[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
|