Repolode
lovell

lovell/sharp

基于 libvips 的高性能 Node.js 图像处理模块,可缩放和转换 JPEG、PNG、WebP、AVIF 等格式。

可替代:ImageMagick

Star
32,830
Fork
1,450
未关闭 Issue
121
最近提交
前天

这是什么?

sharp 是一个用于 Node.js 的图像处理模块,基于 Node-API 实现。常见用法是把大尺寸图片转换为更小、适合网页的 JPEG、PNG、WebP、GIF 和 AVIF 文件,并支持多种尺寸输出。底层使用 libvips 库,缩放速度明显快于 ImageMagick 和 GraphicsMagick 的常用配置。

除缩放外,sharp 还支持旋转、裁剪、图层合成和 Gamma 校正等操作。它能正确处理色彩空间、内嵌 ICC 配置文件和透明通道,并使用 Lanczos 重采样保证质量。操作可以作用于 Buffer、文件或流。

该模块可运行在支持 Node-API v9 的 JavaScript 运行时上,包括 Node.js 20.9.0 及以上版本、Deno 和 Bun。大多数现代 macOS、Windows 和 Linux 系统无需额外安装依赖即可使用。

核心功能

  • 01支持 JPEG、PNG、WebP、GIF、AVIF 等格式的缩放与转换。
  • 02支持旋转、裁剪、图层合成和 Gamma 校正。
  • 03正确处理 ICC 配置文件、EXIF 方向和透明通道。
  • 04可直接处理 Buffer、文件和流。
  • 05通过 Node-API v9 支持 Node.js、Deno 和 Bun。

适用场景

  • 在用户上传图片时生成缩略图和多种尺寸的网页图片。
  • 在构建或媒体处理流程中批量把大图转换为 WebP 或 AVIF。
  • 在服务端利用 SVG 图层合成实现圆角、水印或叠加效果。

快速上手

  1. 1

    从 npm 安装 sharp

    npm install sharp
  2. 2

    在代码中导入或 require sharp

  3. 3

    调整图片大小并输出为 WebP 文件

使用前须知

  • 需要支持 Node-API v9 的运行环境,例如 Node.js 20.9.0 或更高版本。

收录于专题

标签

#image-processing#nodejs#image-resize#libvips#webp#avif#jpeg#png#crop#exif

常见问题

sharp 是什么?
基于 libvips 的高性能 Node.js 图像处理模块,可缩放和转换 JPEG、PNG、WebP、AVIF 等格式。 sharp 是一个用于 Node.js 的图像处理模块,基于 Node-API 实现。常见用法是把大尺寸图片转换为更小、适合网页的 JPEG、PNG、WebP、GIF 和 AVIF 文件,并支持多种尺寸输出。底层使用 libvips 库,缩放速度明显快于 ImageMagick 和 GraphicsMagick 的常用配置。
sharp 可以免费使用吗?用的什么许可证?
sharp 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
sharp 还在维护吗?
活跃维护中。sharp 最近一次提交是在 2026年11月5日。
sharp 适合用来做什么?
在用户上传图片时生成缩略图和多种尺寸的网页图片。 在构建或媒体处理流程中批量把大图转换为 WebP 或 AVIF。 在服务端利用 SVG 图层合成实现圆角、水印或叠加效果。
sharp 怎么安装和运行?
从 npm 安装 sharp: npm install sharp 在代码中导入或 require sharp 调整图片大小并输出为 WebP 文件
在哪里获取 sharp?
源代码和安装说明在 GitHub 上:https://github.com/lovell/sharp

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目