Repolode
nothings

nothings/stb

一组单文件、公共领域(或 MIT 许可)的 C/C++ 库,涵盖图像读写、字体栅格化与动态数组等。

Star
34,891
Fork
8,111
未关闭 Issue
438
最近提交
前天

这是什么?

stb 是一组独立的 C/C++ 库,每个库都以单个头文件的形式发布,无需构建系统或包管理器即可直接加入项目。默认情况下文件仅作为头文件使用,只需在某个源文件中定义对应宏即可启用实现代码。

集合覆盖的任务范围较广。其中 stb_image 可解码 JPG、PNG、TGA、BMP、PSD、GIF、HDR 和 PIC 图像,stb_image_write 可写出 PNG、TGA 和 BMP 文件,stb_truetype 用于解析并栅格化 TrueType 字体,stb_ds 则提供 C 语言中类型安全的动态数组和哈希表。此外还有 Ogg Vorbis 解码、矩形打包、Perlin 噪声、文本编辑逻辑、体素渲染和瓦片地图编辑等库。

所有库均以公共领域形式发布,也可按 MIT 许可使用。作者指出,这些库通常比体量更大的同类库更易集成,但功能可能较少,速度也可能更慢。

核心功能

  • 01每个库都是单个文件,无需外部依赖。
  • 02stb_image 可从文件或内存中解码多种常见图像格式。
  • 03stb_truetype 可解析并栅格化 TrueType 字体。
  • 04stb_ds 为 C 语言提供类型安全的动态数组和哈希表。
  • 05库以公共领域或 MIT 许可发布,可自由复用。

适用场景

  • 在 C 或 C++ 游戏或工具中加载纹理与图像,无需链接大型库。
  • 在自研图形引擎中渲染 TrueType 字体文字。
  • 在 C 项目中加入动态数组或哈希表,且不引入额外依赖。
  • 将小型工具代码直接嵌入项目,避免复杂的构建配置。

快速上手

  1. 1

    从仓库下载所需的单文件头文件(例如 stb_image.h)

  2. 2

    在且仅在一个 C/C++ 源文件中定义实现宏并包含该头文件

使用前须知

  • stb_image.h 的维护者不会再添加新的图像格式,格式支持范围是固定的。
  • 安全相关的漏洞会在公开 Issue 和 PR 中讨论,修复可能需要较长时间。
  • 元数据中许可证显示为 NOASSERTION,但 README 声明为公有领域或 MIT 双许可。

标签

常见问题

stb 是什么?
一组单文件、公共领域(或 MIT 许可)的 C/C++ 库,涵盖图像读写、字体栅格化与动态数组等。 stb 是一组独立的 C/C++ 库,每个库都以单个头文件的形式发布,无需构建系统或包管理器即可直接加入项目。默认情况下文件仅作为头文件使用,只需在某个源文件中定义对应宏即可启用实现代码。
stb 可以免费使用吗?用的什么许可证?
stb 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
stb 还在维护吗?
活跃维护中。stb 最近一次提交是在 2026年10月23日。
stb 适合用来做什么?
在 C 或 C++ 游戏或工具中加载纹理与图像,无需链接大型库。 在自研图形引擎中渲染 TrueType 字体文字。 在 C 项目中加入动态数组或哈希表,且不引入额外依赖。 将小型工具代码直接嵌入项目,避免复杂的构建配置。
stb 怎么安装和运行?
从仓库下载所需的单文件头文件(例如 stb_image.h) 在且仅在一个 C/C++ 源文件中定义实现宏并包含该头文件
在哪里获取 stb?
源代码和安装说明在 GitHub 上:https://github.com/nothings/stb

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

相关项目