lovell/sharp · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
sharp
该高速 Node-API 模块的典型使用场景 是将常见格式的大型图像转换为 尺寸各异、适合 Web 的较小 JPEG、PNG、WebP、GIF 和 AVIF 图像。
它可用于所有 提供 Node-API v9 支持的 JavaScript 运行时,包括 Node.js (>= 20.9.0)、Deno 和 Bun。
由于使用了 libvips, 图像缩放通常比使用最快的 ImageMagick 和 GraphicsMagick 设置快 4 到 5 倍。
色彩空间、嵌入的 ICC 配置文件和 alpha 透明通道均得到正确处理。 Lanczos 重采样确保质量不会因速度而牺牲。
除了图像缩放外,还提供 旋转、提取、合成和伽马校正等操作。
大多数现代 macOS、Windows 和 Linux 系统 不需要任何额外的安装或运行时依赖项。
文档
访问 sharp.pixelplumbing.com 获取完整的 安装说明、 API 文档、 基准测试 和 变更日志。
示例
npm install sharp
// ESM
import sharp from 'sharp';
// CJS
const sharp = require('sharp');
await sharp(inputBuffer)
.resize({ width: 320, height: 240 })
.toFile('output.webp', (err, info) => { ... });
const output = await sharp('input.jpg')
.autoOrient()
.resize({ width: 200 })
.jpeg({ mozjpeg: true })
.toBuffer();
const semiTransparentRedPng = await sharp({
create: {
width: 48,
height: 48,
channels: 4,
background: { r: 255, g: 0, b: 0, alpha: 0.5 }
}
})
.png()
.toBuffer();
const roundedCorners = Buffer.from(
'<svg><rect x="0" y="0" width="200" height="200" rx="50" ry="50"/></svg>'
);
const roundedCornerResizer =
sharp()
.resize(200, 200)
.composite([{
input: roundedCorners,
blend: 'dest-in'
}])
.png();
readableStream
.pipe(roundedCornerResizer)
.pipe(writableStream);
贡献
贡献者指南 涵盖了报告错误、请求功能以及提交代码变更。
许可
版权所有 2013 Lovell Fuller 及其他人。
根据 Apache 许可证 2.0 版本(“许可证”)授权; 除非符合许可证,否则您不得使用此文件。 您可以在以下地址获取许可证副本: https://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面协议另有规定,根据许可证分发的软件 按“原样”分发,不附带任何明示或暗示的保证或条件。 请参阅许可证以了解管理权限和 限制的具体语言。