关于冬日绘板

官方介绍: LGS Paintboard 2026 冬日绘板

API 文档:LGS Paintboard 2026 冬日绘板 API 文档

冬日绘板是进行网络画布像素争夺的一项活动,在 OI 圈中有一定的知名度。这类活动据传起源于 2017 年愚人节的 Reddit 平台开展的 r/place 活动,时长 72 小时,而当时绘画的冷却时间则为 5 分钟。洛谷平台于 2021 年和 2022 年元旦也发布了类似的活动,由于活动在冬日举行,故定名为冬日绘板。

用户们用自己的 Token,在绘板上勾勒出一个个 OI 圈形象的轮廓。有 OI 圈知名 IP 珂朵莉、东方 Project 等内容,有各个 OI 强校的校徽,有乐正绫、洛天依、初音未来等歌者,也有明日方舟、原神、东方等游戏。许多“势力”在这里争抢地盘,他们或集齐许多 Token 来维护自己的图像,或使用 Token 进行随机撒点,与别的势力抗争。总之,很多用户都在这里留下了自己的一笔。

然而,这项备受好评和欢迎的活动并没有持续下去,在各方势力都在为新一年的冬日绘板做准备时,2023 年的元旦,洛谷官方的冬日绘板并没有如期到来,而 洛谷冬日绘版 界面上的活动时间,也永远停滞在了 2022/01/01 00:00 ~ 2022/01/04 00:30……

后来,在 Github 用户 @IceCang 同学的发起下,他们决定以 AyakaCraft Paintboard 的名义,继续举办 2023 年的冬日绘板。借鉴了洛谷官方冬日绘板的 UI,LS Paintboard 得以复原了洛谷冬日绘板的画风。同时,LS Paintboard 学习了洛谷平台两年间从 Cookie 共享到 Token 共享的升级,并按照原先一个洛谷实名认证的账号拥有一份绘画权限的规则,创造性地使用剪切板 ID 进行用户核验。2023 ~ 2025 年的活动如期进行,成功让许多用户参与其中。

就这样,冬日绘板活动,不但没有因官方绘板的停滞而落幕。而是在一年年地,以民间绘板的形式被传承下去。到 2026 年 2 月过春节的时候,就是洛谷用户们参与冬日绘板的第六个年头了。我们诚挚地邀请屏幕前的各位参与进来,用自己的 Token,为网络上的这一方画布画上你独特的一点,在冬日绘板中留下你的一份痕迹。

让我们一起祝愿冬日绘板越办越好,祝愿我们的冬日绘板永存!

关于脚本

2025 脚本:https://xglight.netlify.app/posts/6e35af4a/

Github: https://github.com/xglight/XG-LGS-PaintBoard

GitHub License

采用后端 C++,网络交互 Node.js,使用 TCP Socket 进行程序通信。

C++ 采用 C++23 标准,使用 Clang 21 编译,CMAKE 构建。

Node.js v22.13.1。

1. 极致性能架构 ⚡

  • 后端核心 (C++):采用 C++23 标准,使用 Clang 21 编译。利用 C++ 强大的内存管理和计算能力,处理画布缓存、像素比对、绘图调度等 CPU 密集型任务。
  • 网络前端 (Node.js):基于 Node.js v22.13.1,利用其非阻塞 I/O 特性,高效管理 WebSocket 连接,处理与绘板服务器的高频交互。
  • 双端通信:两者通过本地 TCP Socket 进行数据交换,兼顾了 C++ 的计算速度与 JS 的网络灵活性。

2. 多样化的绘图策略 🎨

脚本内置了三种绘图模式,满足不同场景的需求:

  • 🎲 随机模式 (Random):在指定区域内随机选择像素点进行绘制,适合维护已完成的画作,降低视觉上的“扫描线”感。
  • 📥 填充模式 (Fill):按既定顺序(如从左到右、从下到上等 4 种方向)稳扎稳打地填充区域。
  • 🧩 分块模式 (Block) [推荐]:这是本脚本的杀手锏。支持将画布切割为多个区块(如 1x1, 2x2 等),每个 WebSocket 连接由独立线程负责一个区域。配合 多账号/多 Token,可实现大规模并行绘制,效率倍增。

3. 精细的权重控制 ⚖️

在随机或分块模式下,支持加载 权重文件。你可以为关键像素(如边框、文字细节)设置更高的权重 \(w\),脚本将优先修复这些高权重坐标,确保核心视觉元素不被破坏。

技术细节

XG-LGSPaintBoard 在设计上充分考虑了扩展性与工程化:

  • 依赖管理:集成了 fmt (格式化), spdlog (日志), nlohmann_json (配置解析) 等成熟库,并在 Node.js 端使用 sharp 进行图片二进制处理。
  • 配置灵活:通过 config.json 全局掌控 API 地址、WebSocket 协议(ws/wss)、连接数限制及画布尺寸。
  • 辅助工具:提供 graphtobinary.mjs 快速将图片转换为脚本可读的二进制文件。

如何开始?

项目已在 GitHub 开源,支持 Linux/macOS/Windows (需环境支持) 构建。

快速上手

  1. 克隆项目
    1
    git clone https://github.com/Luogu-Community/XG-LGS-PaintBoard.git
  2. 编译 C++ 后端
    1
    cd XG-LGS-PaintBoard/build && cmake .. && make
  3. 配置 Node.js 依赖
    1
    cd ../nodejs && npm install
  4. 修改配置:参考 config.example.json 填入你的 Token 和绘图路径。
  5. 启动:享受极速绘图体验!

获取项目

🔗 GitHub 仓库地址XG-LGSPaintBoard (欢迎 Star ⭐ 关注更新)


本文基于 XG-LGSPaintBoard README 文档整理,技术参数以仓库最新版本为准。