Skip to content

gRAW

面向 Windows 的便携式 Bayer RAW 测试图像生成器。

English · 简体中文

CI 平台 Release 许可证 Tauri

gRAW 用于生成确定性的无文件头 RAW 测试图像,适合传感器图像链路开发、解码器验证、图像质量实验和自动化测试数据构造。它将精确的字节布局控制与紧凑的中英文桌面界面结合在一起。

Important

gRAW 会严格按照配置写入像素载荷、对齐填充和可选的文件起始字节,但不会添加相机元数据、DNG/TIFF 文件头或色彩处理元数据。

功能亮点

  • 支持 Mono、四种标准 2×2 Bayer 阵列和四种 Quad Bayer 阵列。
  • 支持 Unpacked 8-bit、Unpacked 16-bit、MIPI RAW10、RAW12 和 RAW14。
  • 在存储格式允许的范围内支持 8–16 bit 采样位深。
  • Unpacked 16-bit 支持大小端以及 LSB/MSB 有效位对齐。
  • 支持行对齐、帧对齐、文件起始偏移、各区域填充值和多帧输出。
  • 黑白与彩色测试图案分组,并根据 CFA 自动过滤不兼容选项。
  • 提供精确布局预览、预计文件大小、参数校验、生成进度和取消操作。
  • 提供中英文界面、六套配色主题和三档阅读字号。
  • 生成单文件 Windows 便携版,无需安装。

支持范围

CFA 阵列

类型 选项
黑白 Mono
Bayer 2×2 RGGBGRBGGBRGBGGR
Quad Bayer Quad RGGBQuad GRBGQuad GBRGQuad BGGR

存储格式

格式 位深 宽度要求 字节顺序控制
Unpacked 8 8 bit 不适用
Unpacked 16 8–16 bit 大小端、LSB/MSB 对齐
MIPI RAW10 10 bit 4 像素的倍数 由 MIPI 打包方式规定
MIPI RAW12 12 bit 2 像素的倍数 由 MIPI 打包方式规定
MIPI RAW14 14 bit 4 像素的倍数 由 MIPI 打包方式规定

测试图案

菜单分组 图案 可用 CFA
黑白测试图案 固定值填充、水平灰度渐变、垂直灰度渐变、灰阶阶梯、棋盘格、随机噪声、全黑、全白 Mono 及全部彩色 CFA
彩色测试图案 彩条、彩色渐变、RGB 渐变 Bayer 与 Quad Bayer CFA

当正在使用彩色图案并将 CFA 切换为 Mono 时,gRAW 会自动回退到兼容的“灰阶阶梯”。前端校验与 Rust 后端会执行相同的限制规则。

系统要求

运行便携版

开发环境

  • Node.js 22 或更高版本及 npm。
  • Stable Rust 工具链,并安装 rustfmt
  • Tauri 在 Windows 上所需的 Microsoft C++ Build Tools。
  • WebView2 开发/运行时组件。

快速开始

使用便携版

  1. 从项目发布产物中获取 gRAW-windows-x64-v<版本>.exe 及其 SHA-256 校验文件。
  2. 直接运行该文件,无需安装。
  3. 配置图像尺寸和 CFA 阵列。
  4. 选择兼容的测试图案与存储格式。
  5. 检查计算得到的布局和预计输出大小。
  6. 选择输出路径并生成 RAW 文件。

Note

可执行文件未进行代码签名,Windows SmartScreen 首次运行时可能提示“未知发布者”,这是个人工具分发的常见情况。建议先核对随附的 .sha256 校验文件(校验命令见下文),确认一致后再选择“仍要运行”。

从源码运行

npm ci
npm run licenses
npm run tauri dev

npm run licenses 会根据当前 Windows x64 依赖重新生成 关于 → 开源组件 中展示的第三方组件清单。

构建与质量检查

命令 用途
npm run build 对 React 前端进行类型检查和生产构建
npm run test:frontend 执行输入、窗口缩放、字号、CFA 和界面回归测试
cargo fmt --manifest-path src-tauri/Cargo.toml -- --check 检查 Rust 代码格式
cargo test --manifest-path src-tauri/Cargo.toml 执行 RAW 布局、打包、图案和生成器测试
npm run tauri build -- --no-bundle 构建 Windows 便携版程序

未打包的可执行文件生成在 src-tauri/target/release/graw.exe。每轮迭代的便携版采用 gRAW-windows-x64-v<版本>.exe 命名,并同步提供 .sha256 校验文件,可通过以下命令核对:

Get-FileHash -Algorithm SHA256 .\gRAW-windows-x64-v<版本>.exe

将输出中的哈希值与 .sha256 文件中的内容比对即可确认文件完整性。

持续集成

GitHub Actions 工作流会在推送、拉取请求和手动触发时运行,并安装 Node.js 与 Rust 后检查:

  • 前端测试和生产构建。
  • Rust 格式。
  • Rust 单元测试与集成测试。

顶部徽章显示 CI 与最新发布状态。

此外,发布工作流 会在推送 v* 标签时自动构建便携版并创建 GitHub Release:产物按 gRAW-windows-x64-v<版本>.exe 命名并附带 SHA-256 校验文件,发布说明取自仓库根目录的 RELEASE_NOTES.md

输出模型

对于有效配置,gRAW 按以下关系计算文件大小:

文件总大小 = 文件起始偏移 + 对齐后的帧跨度 × 帧数量

每行和每帧都会按照设定的对齐值进行填充。起始偏移、行末填充和帧末填充可以分别设置填充字节。生成过程先写入临时文件,仅在成功完成后将其重命名为目标文件;取消或失败时会删除临时输出。

项目结构

gRAW/
├─ .github/workflows/   GitHub Actions 持续集成
├─ scripts/             第三方许可证数据生成脚本
├─ src/                 React 与 TypeScript 前端
│  ├─ components/       界面组件
│  └─ generated/        自动生成的第三方许可证数据
├─ src-tauri/           Tauri 与 Rust 后端
│  └─ src/raw/          布局、图案、打包和文件生成
├─ tests/               前端回归测试
└─ release/             本地便携版产物(Git 忽略)

许可证

gRAW 采用双许可证,使用者可以任选以下一种许可证:

对应的 SPDX 表达式为 MIT OR Apache-2.0。第三方组件许可证仍根据依赖关系生成,可在应用程序的“关于”对话框中查看。

About

快速生成Bayer RAW测试图像。

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages