GNU Emacs 的 Canvas 图像能力:像素级绘图与动画的新官方特性
来源: monadicsheep.org — 2026-08-23
概述
作者介绍了即将随 Emacs 32 发布的 canvas 特性:它通过动态模块 API 向 Emacs 暴露 ARGB32 像素缓冲区,让你能直接在缓冲区里操作图像像素,而无需把数据塞进字符串或触发昂贵的全量重绘。文中澄清它与 HTML5 Canvas 无关,与已有 SVG 机制的区别在于支持底层像素访问与局部刷新,并演示了弹球、混沌双摆、3D 点阵等流畅的动画示例。
核心要点
- canvas 是在 Emacs 缓冲区里直接暴露 ARGB32 像素缓冲区的图像类型,与任何 Web 技术无关。
- 与 SVG 不同,canvas 的 :data 只是像素数组,且能访问底层图像对象、避免全量重绘。
- canvas-refresh 走独立重绘路径,只更新相关字形,因此能流畅跑 25–60FPS 动画而不卡顿编辑器。
- 既可用纯 Emacs Lisp 创建,也可经动态模块 API 直接操纵像素缓冲区。
金句
我们想要的正是这样一条路:在像素层面访问 Emacs 正在显示的图像,就地修改它,而不用把数据塞进字符串或穿过垃圾回收器。
👍 0
👎 0
返回 Lobsters 首页