一个轻量的纯 Swift 图片下载与缓存库,用于 iOS、macOS 和 SwiftUI 应用中加载远程图片。
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
从仓库下载所需的单文件头文件(例如 stb_image.h)
- 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 数据每日更新。
相关项目
2.4万2774SwiftMIT更新于 6天前
面向苹果平台的 Swift 图片加载系统,支持缓存、图片处理与 SwiftUI/UIKit 组件。
8684575SwiftMIT更新于 前天
纯 Python 工具库,提供 230 多个扩展标准库的数据结构与工具函数,无外部依赖。
6940484PythonOther更新于 上个月
中文 LeetCode 刷题攻略,按知识脉络排列经典题目,配图文题解、视频讲解和多语言代码。
6.3万1.2万Shell无许可证更新于 17小时前
用 C++17 实现的算法与数据结构教学合集,不依赖外部库,涵盖数学、机器学习、计算机科学和物理。
3.5万7889C++MIT更新于 21天前
由社区维护的 Python 算法实现合集,主要用于学习与教学。
22.5万+36 本周5.1万PythonMIT更新于 5天前