libvips 生态是什么
libvips 是图像处理库;vips 是直接调用其操作的命令行工具;govips、sharp 和 pyvips 则把这些能力带到 Go、Node.js 和 Python。它们共享大量底层概念,但 API、默认值、资源管理和错误模型并不相同。
一张心智地图
Section titled “一张心智地图”| 层级 | 负责什么 | 典型入口 |
|---|---|---|
| libvips | 加载器、操作、缓存与编码器 | C API、vips |
| 语言 binding | 把底层能力映射为语言习惯用法 | govips、sharp、pyvips |
| 应用 Pipeline | 组合读取、变换、编码和观测 | 服务、任务队列、批处理 |
libvips 的一个核心特点是按需执行(demand-driven evaluation):Pipeline 可以先描述一系列操作,随后在请求输出像素时计算需要的区域。这有助于控制中间图像占用,但不等于所有输入、编码器或 binding 都能真正流式处理。
如何选择入口
Section titled “如何选择入口”- 已有 Go 服务并能管理系统依赖:从 govips 开始。
- 已有 Node.js 服务,希望用链式 Pipeline:从 sharp 开始。
- 需要 Python 自动化或与科学计算代码协作:从 pyvips 开始。
- 正在排查一个操作或构造最小复现:先使用 vips CLI。
先完成安装与环境检查,再进入读取、导出与格式转换。