docs: 补充 Gitlink 仓库链接至申报书
纯 MoonBit 图像处理库 · 零 C 依赖 · 四目标原生支持
English · 简体中文
亮点 · 格式支持 · 快速上手 · 功能一览 · 多目标 · 包结构 · 文档 · 构建 · 贡献
image 是一个纯 MoonBit 实现的图像处理库,无任何 C FFI 依赖。覆盖 15 种格式的解码与编码,提供从基础像素操作到高级计算机视觉算法的完整能力。安装:moon add walkzzz/image。
image
moon add walkzzz/image
详细说明(版本映射、格式检测、多目标、核心约束)见 docs/notes.md。
本项目参与 2026 MoonBit 国产基础软件开源大赛(OSC 2026)。AI 辅助说明:本项目在开发过程中使用了 AI 编程助手辅助完成代码生成、测试编写、文档撰写和重构工作。所有 AI 生成代码均经过人工审查、测试验证和逻辑确认,确保代码质量、正确性和可维护性。详细 AI 使用范围见 docs/skill.md。
Image
Image16
ImageF
// 从字节解码 let img : Image = load_from_bytes(png_bytes) println("width=\{img.width}, height=\{img.height}, channels=\{img.channels}") // 编码为 PNG 字节 let out : Bytes = write_png_to_bytes(img) // 缩放(7 种滤波器 × 4 种边缘模式) let resized : Image = resize(img, 128, 128) // 自动检测格式并解码 let any : Image = decode_any(data, req_channels=Some(3)) // 加载动画 GIF let anim : GifAnimation = load_gif_from_bytes(gif_bytes) println("frames=\{anim.frames.length()}, delays=\{anim.delays}") // 查询图像信息(不解码像素) let info : ImageInfo? = info_from_bytes(data) // 流式解码:逐行回调(当前为全量解码后逐行分发) decode_stream(data, fn(row, y) { // 处理第 y 行像素 row : Array[Array[Int]] })
try { let img = load_from_bytes(data) } catch { LoadError::FileIO(msg) => println("文件IO错误: \{msg}") LoadError::DecodeFailed(msg) => println("解码失败: \{msg}") LoadError::UnsupportedFormat(msg) => println("不支持的格式: \{msg}") }
// 检测 SIFT 特征 let kp1 = sift_detect(img1) let kp2 = sift_detect(img2) // L2 距离 + Lowe 比率测试匹配 let matches = sift_match(kp1, kp2, ratio_threshold=0.75) // RANSAC 鲁棒单应性估计 let homography = ransac_homography(matches, threshold=5.0, iterations=1000)
src/examples/ 包含 32 个示例,覆盖全部 API 场景。详见 docs/examples.md。
src/examples/
286 个公开 API 按分类概览,详见 docs/features.md。完整签名见 docs/api_reference.md。
src/ ├── types/ # 全目标类型 (Image, Image16, ImageF, LoadError 等) ├── pure/ # 纯 MoonBit 后端 (无 C FFI) │ ├── codec/ # 格式编解码 (15 种格式) │ ├── color/ # 颜色操作 │ └── util/ # 工具 ├── lib/ # 高层封装 (自动格式分派) ├── meta/ # 元数据 (EXIF, PNG meta) ├── process/ # 高级图像处理算法 (7 子包) │ ├── color/ # 色彩转换/调整/CLAHE/自适应阈值 │ ├── edge/ # 边缘检测/Canny/霍夫/轮廓 │ ├── feature/ # 特征检测: Harris/ORB/SIFT/模板匹配/光流/GLCM/LBP │ ├── filter/ # 滤波/去噪/图像修复 │ ├── frequency/ # FFT/DCT/Haar 小波/频率滤波 │ ├── segment/ # 分水岭/SLIC/grabCut/形态学/连通域 │ └── transform/ # 几何变换/透视/Seam Carving/金字塔 ├── examples/ # 示例代码 (32 个示例,覆盖全部 API) ├── util/ # 工具函数 (基于 pure 的上层封装) ├── bench.mbt # 性能基准测试 └── reexport.mbt # 顶层 API re-export (283 pub fn + 47 pub type)
# 编译检查(四目标) moon check moon check --target wasm-gc moon check --target js moon check --target wasm # 运行测试(四目标各 1203) moon test --target native moon test --target wasm-gc moon test --target js moon test --target wasm # 运行性能基准测试 moon run --target native # 重新生成 API 接口 moon info
欢迎提交 Issue 和 Pull Request!详见 docs/contributing.md。
MIT — 自由使用、修改、分发。
stb_image.h
本项目以 stb_image.h 为参考基础,将其核心图像编解码能力用纯 MoonBit 重新实现:
在移植基础上,本项目新增了大量原 stb_image.h 不具备的高级能力:
如果这个项目对你有帮助,欢迎 ⭐ Star 支持一下!
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
image
纯 MoonBit 图像处理库 · 零 C 依赖 · 四目标原生支持
English · 简体中文
亮点 · 格式支持 · 快速上手 · 功能一览 · 多目标 · 包结构 · 文档 · 构建 · 贡献
📖 简介
image是一个纯 MoonBit 实现的图像处理库,无任何 C FFI 依赖。覆盖 15 种格式的解码与编码,提供从基础像素操作到高级计算机视觉算法的完整能力。安装:moon add walkzzz/image。🏆 OSC 2026 参赛声明
本项目参与 2026 MoonBit 国产基础软件开源大赛(OSC 2026)。AI 辅助说明:本项目在开发过程中使用了 AI 编程助手辅助完成代码生成、测试编写、文档撰写和重构工作。所有 AI 生成代码均经过人工审查、测试验证和逻辑确认,确保代码质量、正确性和可维护性。详细 AI 使用范围见 docs/skill.md。
✨ 亮点
Image、16 位Image16、HDR 浮点ImageF🖼️ 格式支持
🚀 快速上手
安装
最小示例
错误处理
高级示例:SIFT 特征匹配
完整示例集
src/examples/包含 32 个示例,覆盖全部 API 场景。详见 docs/examples.md。🧰 功能一览
286 个公开 API 按分类概览,详见 docs/features.md。完整签名见 docs/api_reference.md。
🎯 多目标支持
📦 包结构
📄 文档
🔧 构建与测试
🤝 贡献
欢迎提交 Issue 和 Pull Request!详见 docs/contributing.md。
📄 许可证
MIT — 自由使用、修改、分发。
🔗 移植说明
原项目信息
stb_image.h移植范围
本项目以
stb_image.h为参考基础,将其核心图像编解码能力用纯 MoonBit 重新实现:Image、16 位Image16、HDR 浮点ImageF超越原项目的扩展
在移植基础上,本项目新增了大量原
stb_image.h不具备的高级能力:与原项目的差异
🙏 致谢
如果这个项目对你有帮助,欢迎 ⭐ Star 支持一下!