输入
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.
示例
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
返回 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 wideheight
: Number of pixels highspace
: Name of colour space interpretation e.g.srgb
,rgb
,cmyk
,lab
,b-w
...channels
: Number of bands e.g.3
for sRGB,4
for CMYKdepth
: Name of pixel depth format e.g.uchar
,char
,ushort
,float
...density
: Number of pixels per inch (DPI), if presenthasProfile
: Boolean indicating the presence of an embedded ICC profilehasAlpha
: Boolean indicating the presence of an alpha transparency channelorientation
: Number value of the EXIF Orientation header, if presentexif
: Buffer containing raw EXIF data, if presenticc
: Buffer containing raw ICC profile data, if present
参数
callback
Function? called with the arguments(err, metadata)
示例
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
});
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 containsmin
(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
参数
callback
Function? called with the arguments(err, stats)
示例
const image = sharp(inputJpg);
image
.stats()
.then(function(stats) {
// stats contains the channel-wise statistics array and the isOpaque value
});
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.
参数
-
limit
(Number | Boolean) an integral Number of pixels, zero or false to remove limit, true to use default limit. -
Throws Error Invalid limit
返回 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.
参数
sequentialRead
Boolean (optional, defaulttrue
)
返回 Sharp