---
url: /jabber.md
---
智绘教Inkeys，原本专注于教学环境下的屏幕绘制软件，是更推荐在教师一体机上安装的软件，拥有其独特的丰富功能和细节设定，也得到了许多用户以及同类软件开发者的支持。随着用户群体不断变大，日活跃用户不断增多。我逐渐意识到，必须将智绘教当做一款真正的产品来开发了。**智绘教Inkeys，是专注于多场景下的全能型屏幕批注工具！**

所以本篇文章将通过一下几个方面，全方位地介绍一下智绘教，以及我眼中未来的智绘教。

## 软件起源

智绘教严格意义上起源于 2022 年 5 月，当时我只是有想法尝试开发一些屏幕的画板工具用于 OI 竞赛。我进行了一些尝试，并通过在网上查找资料学习了抗锯齿绘图方法和一些数学知识（比如贝塞尔曲线）。2019 年我从小学五年级的寒假接触了 EasyX 这个绘图库，这个库很容易上手。当时我主要通过这个绘图库做一些游戏，已经算是比较熟悉这个库了。加上我当时刚起步搞 OI（信息学奥林匹克竞赛），EasyX 同样也是使用的 C++，这就是一个很方便的选择。后来我也尝试过 EGE，但是它的文档对于那时小学的我来说太深奥了，所以并没有深入。

到了 2022 年 8 月，我认识了 huidong 大佬，以及他所开发的 HiEasyX 库（可以当做 EasyX 的拓展库），这个库拥有许多丰富的功能，以及可以实现我之前难以实现的许多功能，我迅速了解了这个库，并上手使用。

可以说，HiEasyX 对于智绘教拥有至关重要的作用，我在后来对智绘教的开发中，我成为了 HiEasyX 的一位贡献者，我一边开发智绘教，一边完善 HiEasyX，智绘教的许多需求，都是在 HiEasyX 中实现的。

2023 年 2 月，智绘教正式立项。一次班上的数学老师在使用 AiClass 的屏幕画板时，由于操作失误。导致辛苦写了一节课的笔迹灰飞烟灭，也没法撤回……所以我要开发一个工具，提高课堂效率，使屏幕批注更容易。

## 初期起步

我最初仿照的是 AiClass 的 UI 设计，主要是为了让数学老师习惯使用。我开始实现了最基础的几个功能。并一针见血解决了当下的问题，添加了恢复画板的功能。并以此向各课老师推荐，并得到了肯定和支持。

## 发展理念

智绘教从一开始就不是追求丰富功能，或者界面有多么高大上。一切都是从极致化的体验出发，专注于解决当下主要软件的痛点。软件的设计从一开始就遵从触摸屏的操作逻辑，目前来看对于 PC 鼠标不是非常友好，这也是需要改进的。许多细节的设计汇水成河，打造了优势壁垒，切实地提高了课堂效率。

智绘教初期的应用场景是：

* Word/PDF 等屏幕批注
* PPT 演示批注
* 未来的 PC 网课演示

有人会想让我加个白板等等，我只能说这不是智绘教的重心，智绘教的重心工作还不够完美，还得深造。

## 艰辛探索

智绘教构建于 C++ 和 HiEasyX 绘图库，界面 UI 和绘图绘制均是手写实现的。不同于 Ink Canvas、Inkways 等成熟工具，其使用的是 C# 语言，对于界面的开发较简单。我需要花费许多时间，用于 UI 设计上，尽管还不是非常完美。从最开始的两个程序到如今一个程序的多窗口绘图，从最当初的简陋 UI 当目前的 UI2.0 丝滑动画……智绘教发展了很多，有着翻天覆地的变化。

***

::: tip
上方内容完成于 2024 年 4 月
:::

***

![](/ui20.png)

现在时间来到了 2025 年 8 月，Inkeys2 基本结束了，接下来是制作 Inkeys3。

## 为什么开发进度缓慢？

时间经过了一年多，似乎只有选项界面有了非常大的改变，其他都是一些拓展的功能。其实吧，写功能还是挺快的，唯一感觉拖后腿的就是界面的设计与开发。

不同于 .NET 和 QT 中可以轻松上手的 UI 库，智绘教的主栏依然采用的是自制的简易框架自绘 UI，写起来需要考虑很多。不然后期维护很麻烦。而选项界面就使用的是 Dear Imgui，这个库非常方便，但是它并不是为了这种用户交互场景所设计，所以样式一般，并且内存占用大。

之前的选项界面过于简陋，所以从 2025 年初开始，我就将选项页面的风格开始朝着 fluent2 模仿，而且使用 Dear Imgui 模仿，难度较高。加上 imgui 的传参不是很统一，所以我也不好封装。例如最简单的开关控件，我也搞了十几行来实现风格样式的调节。

## 为什么现阶段内存占用还是那么大？

只能说早期在 1080P 下对内存占用不是很敏感，并没有预先打算。绘图方面则采用逻辑较为简单的位图方案（也就是用图片表示画布，而不是用数字表示墨迹的矢量方案），而矢量方案就可以解决很多内存，但是实际写起来也不是那么轻松。加上目前还有 5 个窗口，每个窗口都需要一个背景画布，而且这些窗口是全屏的，也就是说分辨率越高占用越大。

> 简单来说，一个 4K 的画布就要花费 32MB 左右，这个数字不小了。

Dear Imgui 新版本带来的优化：在它 1.92.0 版本之后，引入了动态字体绘制，我通过升级到 1.92.1，让内存减少了 150+ MB（在 1080P 下），属于巨大提升了。

后期当然要对这个进行优化，期望在 1080P 下，内存占用 < 150MB 吧。

::: tip To be continue ……
上方内容完成于 2025 年 8 月
:::
