# u8g2-js **Repository Path**: createskyblue/u8g2-js ## Basic Information - **Project Name**: u8g2-js - **Description**: U8G2 单色图形库的纯 JS 移植 · 浏览器像素级仿真,用于 AI 生成代码与嵌入式设备开发前验证(Pure JavaScript port of U8G2 monochrome graphics library with pixel-perfect browser simulation for AI-generated code and embedded device development) - **Primary Language**: JavaScript - **License**: BSD-2-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-06 - **Last Updated**: 2026-08-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # u8g2-js 🌐 [English](./README.md) · **中文** 把 [U8G2](https://github.com/olikraus/u8g2) 单色图形库**纯 JS 移植**到浏览器 / Node, **像素级还原真机渲染**,用于 AI 生成代码 + 浏览器仿真,方便后续基于 U8G2 做小型设备开发。 - **零构建、零依赖**:原生 ES Module,浏览器 `file://` 直接可用,Node 同样可跑。 - **像素级还原**:帧缓冲布局、`draw_color` 0/1/2、字体 RLE 位流解码、`draw_l90` 旋转变换、 Bresenham 图元 —— 全部与 C 源码 1:1 移植,**已与原版 C 库逐字节交叉验证**(见 [验证](#验证))。 - **字体运行时加载**:字体本质就是 `Uint8Array` 字节流,运行时用你自己的 JS 载入, 支持任意 U8G2 字体(含 `bdfconv` 生成的中文字体)。 - **API 兼容**:Arduino `U8g2lib` 风格 camelCase 为主,同时提供 C 风格 snake_case / `u8g2_*` 别名。 ## 在线演示 一个 212×102 单色墨水屏传感器仪表盘(CO₂ / PM2.5 / 温湿度趋势),基于 u8g2-js 构建—— 在浏览器里对真实墨水屏做像素级仿真: ![u8g2-js 在线演示 —— 212x102 墨水屏 CO2 趋势界面](docs/co2-mode.jpg) **在线演示:** [createskyblue.github.io/epaper-sensor-trend-demo](https://createskyblue.github.io/epaper-sensor-trend-demo/) · **源码:** [github.com/createskyblue/epaper-sensor-trend-demo](https://github.com/createskyblue/epaper-sensor-trend-demo) 该演示把 `u8g2-js` 作为 git 子模块引入,跑的是和真机完全一致的同一套渲染引擎。 ## 基于的上游版本 本移植对照 **U8G2 上游 master 分支**的基准提交: ``` commit ab9e48b2228351e9476682a70b7f3ee4909cd585 Date: 2026-06-27 16:10:31 +0200 Subject: Merge pull request #2786 from iggymayer/fix-flipmode-ssd1362z-OEL1M0033WE ``` 原版 C 库已浅克隆到本仓库旁边的 `u8g2/` 目录(仅此提交), `tools/cverify/build.sh` 的**逐字节交叉验证正是针对这一版 C 库**进行的。 要升级基准版本:重新 `git clone https://github.com/olikraus/u8g2.git` 到最新 master, 并重跑 `bash tools/cverify/build.sh` 确认一致性后即可。 ## 快速开始 ```js // 浏览器: