跳转到内容

如何选择语言绑定与入口

复制本页

先看程序已经跑在哪种语言里,再决定图像处理入口。四个常用入口共享 libvips 的操作模型,但安装方式、默认值、资源释放和暴露出来的操作子集都不相同。本页帮助你在四个入口之间分流,不把它们当成可直接互换的 API。

你已经有 从这里进入 接着读
Go 服务,并能处理 CGO 与系统库 govips govips API 模型
Node.js 服务,希望用链式 Pipeline sharp 15 分钟 Quickstart
Python 自动化、研究或服务 pyvips 15 分钟 Quickstart
要确认某个操作,或做最小复现 vips CLI 安装与环境检查

CLI 适合把一个操作缩成可重复的命令。它不是另外一种常驻服务运行时,也不应被当成第四个语言绑定。

  • govips 把 libvips 放进 Go 进程。调用方要自己完成 Startup、Shutdown 和每个 ImageRef 的 Close。流式读取、取消和引用计数都集中在这个入口。
  • sharp 把 Pipeline 收成 Node.js 链式调用。预构建包携带自己的 libvips,因此它的库版本可以和系统里的 libvips 不同。
  • pyvips 把操作映射成 Python 方法,通常链接系统 libvips。它适合和现有 Python 工具链协作,但对象生命周期规则与 govips 不同。
  • vips CLI 直接暴露操作名和参数。排查“这个操作本身是否可用”时,先用它排除语言绑定封装层的影响。
  1. 用安装与环境检查确认语言绑定版本和它实际加载的 libvips 版本。
  2. 用15 分钟 Quickstart跑通同一张输入上的缩略图。
  3. 如果选择 govips,再读govips API 模型,区分手写封装与自动生成操作。