stb 单文件库:拷一个头文件,10 行代码跑通 stb 图像处理

stb 单文件库:拷一个头文件,10 行代码跑通 stb 图像处理 stb 单文件库拷一个头文件10 行代码跑通 stb 图像处理【免费下载链接】stbstb single-file public domain libraries for C/C项目地址: https://gitcode.com/GitHub_Trending/st/stb每次要写个读 PNG 的小工具都得先拖一堆依赖库和构建系统进来配置时间经常比功能本身还长。stb 是另一条路stb 图像处理、字体渲染、数据结构这些活各自被压进一个头文件里零配置拷走就能用。什么场景下你需要它做小游戏时想快速生成一张无缝拼接的瓦片地图又不想自己设计瓦片集和连接规则仓库里的 Wang tile按边缘颜色自动拼接的瓦片集生成器可以直接上手。写工具脚本只需要读写几张 PNG实在不想为它配一套 CMake单个 stb_image.h 就能独立编译。游戏里要把 TrueType 字体文字画进纹理引入 freetype 又嫌重stb_truetype.h 一个文件足够。功能地图一个文件能干什么图像处理stb_image.h 加载常见图片格式stb_image_write.h 保存 PNG/JPEGstb_image_resize2.h 负责缩放字体渲染stb_truetype.h 解析 TrueType 字体并可生成 SDF用距离场表示字体轮廓放大后依然锐利位图stb_easy_font.h 几行代码画出内置小字体数据结构stb_ds.h 提供动态数组、哈希表等写法像写宏一样用容器地图生成stb_herringbone_wang_tile.h 从少量瓦片拼出大幅无缝地图跑起来3 步走通最小示例最短路径就是拷贝头文件 → 在一个 .c 文件里定义实现宏 → 调 API。#define STB_IMAGE_IMPLEMENTATION #include stb_image.h #define STB_IMAGE_WRITE_IMPLEMENTATION #include stb_image_write.h int main(void) { int w, h; // 加载 PNG 并强制转成 4 通道 RGBA unsigned char *px stbi_load(in.png, w, h, NULL, 4); stbi_write_png(out.png, w, h, 4, px, 0); stbi_image_free(px); return 0; }gcc main.c -o main -lm直接编译跑完得到 out.png全程没碰任何配置文件 ✅眼见为实效果展示stb_herringbone_wang_tile 生成的黑白地图每一块都是那几个瓦片之一但接缝全部对上了。换一组随机种子同一套连接规则也能长成这种高对比度的黑白纹理。同一行字从 10pt 一路渲到 104pt大字号下边缘依然干净。别忽略的这几个细节每个 STB_XXX_IMPLEMENTATION 宏在整个项目里只能出现在一个源文件里否则会链接报错。只拷你需要的头文件别把仓库根目录一堆 .h 全塞进工程。每个头文件开头的大段注释就是完整使用说明带样例代码不用另找文档。stbi_load 的通道参数填 4 可直接拿到 RGBA用完记得 stbi_image_free。Wang tile 生成需要加载专用工具生成的模板文件任意 PNG 塞不进去。公共领域许可意味着直接放进商业项目也没问题条款见 LICENSE使用技巧可看 docs/stb_howto.txt各模块的完整示例代码都在 tests/ 目录里。【免费下载链接】stbstb single-file public domain libraries for C/C项目地址: https://gitcode.com/GitHub_Trending/st/stb创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考