S
图像处理免费开源更新 2026/10/24
Sharp
Node.js 的高性能图像处理库,用来缩放、裁剪、合成和批量输出图片。教程里的批量封面渲染用它。
适合什么
- 批量缩放、裁剪、转格式。
- 把 SVG 渲染成 PNG 或 JPG。
- 在图片上叠加文字、水印、另一张图。
- 在服务器上无浏览器地处理图片。
不适合什么
- 复杂网页排版和网页字体渲染。需要这些时,用 Playwright 截 HTML 更合适。
- 视频处理。Sharp 只处理图像。
常用写法
import sharp from "sharp";
await sharp("input.png")
.resize(1080, 1440, { fit: "cover" })
.jpeg({ quality: 92 })
.toFile("output.jpg");
把 SVG 字符串直接渲染成图片:
await sharp(Buffer.from(svgString))
.png()
.toFile("cover.png");
免费替代
- ImageMagick:命令行能力强,适合脚本和批处理。
- Canvas(node-canvas):需要在画布上做更自由的绘制时使用。
- Playwright:需要完整网页排版和网页字体时使用。
注意
- SVG 里的中文依赖系统字体。服务器上先安装 Noto Sans CJK 或思源黑体。
- 批量处理时控制并发,图片解码和编码都吃内存。
- 输出 JPG 时质量设到 90 左右通常已经足够,没必要盲目拉满。