mirror of
https://github.com/lovell/sharp.git
synced 2025-07-09 10:30:15 +02:00
133 lines
5.4 KiB
Markdown
133 lines
5.4 KiB
Markdown
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
|
|
|
|
### Table of Contents
|
|
|
|
- [clone](#clone)
|
|
- [metadata](#metadata)
|
|
- [stats](#stats)
|
|
- [limitInputPixels](#limitinputpixels)
|
|
- [sequentialRead](#sequentialread)
|
|
|
|
## clone
|
|
|
|
Take a "snapshot" of the Sharp instance, returning a new instance.
|
|
Cloned instances inherit the input of their parent instance.
|
|
This allows multiple output Streams and therefore multiple processing pipelines to share a single input Stream.
|
|
|
|
**Examples**
|
|
|
|
```javascript
|
|
const pipeline = sharp().rotate();
|
|
pipeline.clone().resize(800, 600).pipe(firstWritableStream);
|
|
pipeline.clone().extract({ left: 20, top: 20, width: 100, height: 100 }).pipe(secondWritableStream);
|
|
readableStream.pipe(pipeline);
|
|
// firstWritableStream receives auto-rotated, resized readableStream
|
|
// secondWritableStream receives auto-rotated, extracted region of readableStream
|
|
```
|
|
|
|
Returns **Sharp**
|
|
|
|
## metadata
|
|
|
|
Fast access to (uncached) image metadata without decoding any compressed image data.
|
|
A Promises/A+ promise is returned when `callback` is not provided.
|
|
|
|
- `format`: Name of decoder used to decompress image data e.g. `jpeg`, `png`, `webp`, `gif`, `svg`
|
|
- `width`: Number of pixels wide
|
|
- `height`: Number of pixels high
|
|
- `space`: Name of colour space interpretation e.g. `srgb`, `rgb`, `cmyk`, `lab`, `b-w` [...](https://github.com/jcupitt/libvips/blob/master/libvips/iofuncs/enumtypes.c#L636)
|
|
- `channels`: Number of bands e.g. `3` for sRGB, `4` for CMYK
|
|
- `depth`: Name of pixel depth format e.g. `uchar`, `char`, `ushort`, `float` [...](https://github.com/jcupitt/libvips/blob/master/libvips/iofuncs/enumtypes.c#L672)
|
|
- `density`: Number of pixels per inch (DPI), if present
|
|
- `hasProfile`: Boolean indicating the presence of an embedded ICC profile
|
|
- `hasAlpha`: Boolean indicating the presence of an alpha transparency channel
|
|
- `orientation`: Number value of the EXIF Orientation header, if present
|
|
- `exif`: Buffer containing raw EXIF data, if present
|
|
- `icc`: Buffer containing raw [ICC](https://www.npmjs.com/package/icc) profile data, if present
|
|
|
|
**Parameters**
|
|
|
|
- `callback` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)?** called with the arguments `(err, metadata)`
|
|
|
|
**Examples**
|
|
|
|
```javascript
|
|
const image = sharp(inputJpg);
|
|
image
|
|
.metadata()
|
|
.then(function(metadata) {
|
|
return image
|
|
.resize(Math.round(metadata.width / 2))
|
|
.webp()
|
|
.toBuffer();
|
|
})
|
|
.then(function(data) {
|
|
// data contains a WebP image half the width and height of the original JPEG
|
|
});
|
|
```
|
|
|
|
Returns **([Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)> | Sharp)**
|
|
|
|
## stats
|
|
|
|
Access to pixel-derived image statistics for every channel in the image.
|
|
A Promise is returned when `callback` is not provided.
|
|
|
|
- `channels`: Array of channel statistics for each channel in the image. Each channel statistic contains
|
|
- `min` (minimum value in the channel)
|
|
- `max` (maximum value in the channel)
|
|
- `sum` (sum of all values in a channel)
|
|
- `squaresSum` (sum of squared values in a channel)
|
|
- `mean` (mean of the values in a channel)
|
|
- `stdev` (standard deviation for the values in a channel)
|
|
- `minX` (x-coordinate of one of the pixel where the minimum lies)
|
|
- `minY` (y-coordinate of one of the pixel where the minimum lies)
|
|
- `maxX` (x-coordinate of one of the pixel where the maximum lies)
|
|
- `maxY` (y-coordinate of one of the pixel where the maximum lies)
|
|
- `isOpaque`: Value to identify if the image is opaque or transparent, based on the presence and use of alpha channel
|
|
|
|
**Parameters**
|
|
|
|
- `callback` **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)?** called with the arguments `(err, stats)`
|
|
|
|
**Examples**
|
|
|
|
```javascript
|
|
const image = sharp(inputJpg);
|
|
image
|
|
.stats()
|
|
.then(function(stats) {
|
|
// stats contains the channel-wise statistics array and the isOpaque value
|
|
});
|
|
```
|
|
|
|
Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)>**
|
|
|
|
## limitInputPixels
|
|
|
|
Do not process input images where the number of pixels (width _ height) exceeds this limit.
|
|
Assumes image dimensions contained in the input metadata can be trusted.
|
|
The default limit is 268402689 (0x3FFF _ 0x3FFF) pixels.
|
|
|
|
**Parameters**
|
|
|
|
- `limit` **([Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) \| [Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean))** an integral Number of pixels, zero or false to remove limit, true to use default limit.
|
|
|
|
|
|
- Throws **[Error](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error)** Invalid limit
|
|
|
|
Returns **Sharp**
|
|
|
|
## sequentialRead
|
|
|
|
An advanced setting that switches the libvips access method to `VIPS_ACCESS_SEQUENTIAL`.
|
|
This will reduce memory usage and can improve performance on some systems.
|
|
|
|
The default behaviour _before_ function call is `false`, meaning the libvips access method is not sequential.
|
|
|
|
**Parameters**
|
|
|
|
- `sequentialRead` **[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** (optional, default `true`)
|
|
|
|
Returns **Sharp**
|