一个专为单片机与嵌入式开发(如 Arduino UNO R4 WiFi LED 矩阵)设计的像素画取模与位矩阵打包工具。
该项目采用 React + Vite + Tailwind CSS v4 构建,运行极其流畅,界面美观现代。
- 自定义画布尺寸:支持任意高宽(推荐 1x1 至 64x64),并提供常用单片机预设尺寸(如 8x8, 12x8 Uno R4, 8x13 等)。
- 交互式像素画布:支持点击切换、按住鼠标拖拽连续绘制与擦除,提供“反转颜色”、“全选”、“清空”等辅助功能。
- 自适应位打包算法:
- 支持多种变量类型:
uint8_t,uint16_t,uint32_t,uint64_t。 - 支持扁平连续打包(首尾相连,不浪费任何位)与每行独立打包(换行时自动对齐到下一个数组元素)。
- 支持高位在前 (MSB-first) 与低位在前 (LSB-first) 位顺序。
- 支持开头填充 (Pad at Start) 与末尾填充 (Pad at End) 对齐填充规则。
- 支持多种变量类型:
- 实时多格式代码生成:
- 十六进制 C/C++ 数组:直接复制到 Arduino/C/C++ 代码中。
- 01 矩阵:直观的二进制文本矩阵。
- 字符画 (*#):使用
*和#渲染的文本艺术,便于在代码注释中预览。
在项目根目录下运行以下命令启动本地开发服务器:
npm install
npm run dev构建高度优化的静态网页:
npm run build构建产物将输出至 dist/ 目录,可直接部署于 GitHub Pages、Vercel 或任何静态文件服务器。
将
以 8行 13列 的网格为例(共 104 像素),打包为 uint32_t(32位)时:
- 需要
$\lceil 104 / 32 \rceil = 4$ 个uint32_t元素(共 128 位)。 - 剩余 24 位作为填充位。
- 末尾填充 (Pad at End):前 104 位为像素数据,最后 24 位补 0。
- 高位在前 (MSB-first):每个 32 位元素中,最先读到的像素对应最高有效位 (Bit 31)。
这与 Arduino UNO R4 WiFi 的官方 LED 矩阵打包格式完全一致!
MIT License