Node.js 中的快速图像处理模块
Sharp 是一个图像处理模块,它使用 libvips 库为 Node.js 项目提供快速处理。
夏普入门
通过 NPM 安装 Sharp 的推荐方式。请使用以下命令进行安装。
通过 NPM 安装 Sharp
npm install sharp
通过免费的 JavaScript API 调整图像大小
开源锐利图书馆允许JavaScript个开发者按照程序调整图像。 夏普允许您将大型图像格式转换成与不同的Web应用程序兼容的小型格式。 在锐利图书馆的帮助下、Sharp的图像处理速度比其他图像格式变换器(如ImageMagick或GraphicsMagick)快4至5倍。 夏普确保图像质量不受Lancers取样模块的影响。
通过JavaScript读取和重读图像
const transformer = sharp()
.resize({
width: 200,
height: 200,
fit: sharp.fit.cover,
position: sharp.strategy.entropy
});
// Read image data from readableStream
// Write 200px square auto-cropped image data to writableStream
readableStream
.pipe(transformer)
.pipe(writableStream)
通过免费的 JavaScript API 进行图像处理
敏锐的库使软件开发者能够在JavaScript个框架中处理图像。 您可以进行图像定位、旋转、提取、校正和组成等操作。 Sharp与MacOS、Windows和Linux系统兼容、在使用Node。js版10及以上时不需要任何额外的设备。
通过JavaScript从一个地区提取图像
sharp(input)
.extract({ left: leftOffsetPre, top: topOffsetPre, width: widthPre, height: heightPre })
.resize(width, height)
.extract({ left: leftOffsetPost, top: topOffsetPost, width: widthPost, height: heightPost })
.toFile(output, function(err) {
// Extract a region, resize, then extract from the resized image
});
通过JavaScriptAPI旋转图像
const rotateThenResize = await sharp(input)
.rotate(90)
.resize({ width: 16, height: 8, fit: 'fill' })
.toBuffer();
const resizeThenRotate = await sharp(input)
.resize({ width: 16, height: 8, fit: 'fill' })
.rotate(90)
.toBuffer();
JavaScript个应用程序中的图像元数据工作
开源锐利图书馆包括全力支持在JavaScript个应用程序中使用图像元数据。 该库提供快速访问图像元数据而不解码任何压缩像素数据。 它包括支持图像大小、格式、高度、深度、密度、空间、水平、背景、出口、页面等重要属性。 您也可以很容易地访问像素生成的图像的每个信道、如最小、最大、总和、平均、锐度、等。
通过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
});