【初折腾】给开源墨水屏换字体,并自制预览工具
本帖最后由 t3486784401 于 2021-2-20 06:13 编辑首先感谢版主的精美作品,开源墨水屏有了比较科幻的功能和设定。
按照之前折腾盖革计的流程,这里先拿时钟字体开刀。
v2.09 发布版的时钟字体为扁平样式,直接看起来有些浪费屏幕空间。
再说作为一介电工,怎能没有数码管字体,于是准备折腾。
【原理】
ESP32 的下载工具支持 FLASH 局部烧写,因而更换字体不需要重新编译主固件(况且我 Arduino 环境还没装好)。
版主比较给力的讲明了 fontnum48.bin 烧录位置为 0x790000,因而替换该文件并烧录即可。
至于字体文件编码格式,大致都能自行猜出来:
每个24x48字符占用空间:24*48/8 = 144 Bytes
整体 fontnum48.bin 文件尺寸:1584 Bytes = 11 *144 Bytes
也就是 fontnum48.bin 文件包含了共11个字符( 0~9、冒号 ),结合帖子中取模的描述,可以很容易分析出编码格式。
【更换字体】
既然 24*48 点阵并不算很大,直接画图板来重画一套数码管字体。画好 8 字符,其他都是复制粘贴所得:
按照之前分析的取模方式,生成全新的字体文件;使用烧录软件写入 0x790000 位置,直接就有了替换的效果。
烧录配置(仅更新字体):
运行效果 Before vs After:
附上现有的两种字体文件(原版+数码管版,0x790000位置):
【预览工具】
至此已经更换了时钟字体,但依旧不够完美。
由于字体文件属于编译好的字模数据,无法直观查看效果,故顺手用 VS 搭了一个预览工具。
在 Windows 系统下,直接加载 1584 Byte 的字体文件,可以直接预览字体样式。
具体原理无非是读取文件,按照字模数据在 Windows 窗口上绘制明暗像素点,我加了 2x 放大。
版主 v2.09 原版字体、新做的数码管字体对比如下:
按照惯例上传预览工具App以及VS源码:
----------------------------------------------------------------------------------------
以上,给开源墨水屏换了一套数码管字体,并自制了字体预览工具,一并分享来供大家参考。
最后祝大家折腾愉快!
我也提供一个字体网站,内容很全。
https://www.dafont.com/theme.php?cat=302&page=1&text=0123456789
取模工具
赞,谢谢楼主~ 感谢各位大佬的分享 LZ出品必定精品 精华,打赏! 不错,支持,顶一下.... 感谢版主 2L 提供的字体资源链接,托这个的福我做一个立体数码管的效果。
原版字体名称:FakeHope,使用 40号字体,微调了宽度,并做了简单二值化(源字体是 TTF,不是点阵的)。
断点全靠手绘,结果还是时间仓促,有狗啃的豁子。改天好好整理下,也惠及一下盖革计。
字体文件(0x790000位置烧写):
运行效果:
汉字字库也可以更改。 t3486784401 发表于 2021-2-20 18:41
感谢版主 2L 提供的字体资源链接,托这个的福我做一个立体数码管的效果。
原版字体名称:FakeHope,使用 4 ...
喜欢这字体。 t3486784401 发表于 2021-2-20 18:41
感谢版主 2L 提供的字体资源链接,托这个的福我做一个立体数码管的效果。
原版字体名称:FakeHope,使用 4 ...
右下角的图是用什么软件显示的? armok. 发表于 2021-2-20 11:11
精华,打赏!
感谢站长! 网络孤客 发表于 2021-2-23 11:23
右下角的图是用什么软件显示的?
1L 自制的预览工具啊 感谢大家的支持! 汉字字体也可以折腾不,如果不同大小的字体,是不是都要做不同的字库 mcu005 发表于 2021-2-27 09:37
汉字字体也可以折腾不,如果不同大小的字体,是不是都要做不同的字库
是的,不同大小字体要做成不同字库。
下图就换成楷体,但16点阵的效果不理想。
https://www.amobbs.com/forum.php?mod=attachment&aid=NTQ1NDE2fDE3NTliZWE4fDE2MTQzOTM4MTh8MTM2OTU5NHw1NzQ2Njcw&noupdate=yes mcu005 发表于 2021-2-27 09:37
汉字字体也可以折腾不,如果不同大小的字体,是不是都要做不同的字库
字体分点阵体和矢量体,墨水屏用的是前者,涉及的每种字号都要做一套字库 t3486784401 发表于 2021-2-20 18:41
感谢版主 2L 提供的字体资源链接,托这个的福我做一个立体数码管的效果。
原版字体名称:FakeHope,使用 4 ...
楼主,从TTF文件提取想要的数字,只能通过手动画点吗?{:cry:} 涵潇舒雅 发表于 2021-8-5 14:21
楼主,从TTF文件提取想要的数字,只能通过手动画点吗?
看样子你找到这个字体的帖子了。
有些工具可以部分替代手动画点,大多数是液晶取模类的软件。但效果很一般,就是强制二值化后的结果,轮廓狗啃一样。
因为是二值图,想要好看,基本需要手工画 t3486784401 发表于 2021-8-5 14:25
看样子你找到这个字体的帖子了。
有些工具可以部分替代手动画点,大多数是液晶取模类的软件。但效果很一 ...
恰巧看到您分享的这个字库bin文件了,打算先用下看看效果,实在不行就只能在您这个基础上手绘了 t3486784401 发表于 2021-8-5 14:25
看样子你找到这个字体的帖子了。
有些工具可以部分替代手动画点,大多数是液晶取模类的软件。但效果很一 ...
楼主,您手里有没有这个字体的bmp文件,刚试了下字体有点大,想在您的基础上缩放下{:lol:} 这样就不用一个点一个点的画了 涵潇舒雅 发表于 2021-8-5 16:10
楼主,您手里有没有这个字体的bmp文件,刚试了下字体有点大,想在您的基础上缩放下 这样就不用一 ...
你要缩放二值图,确定不是闹着玩的?
二值图缩放以后必然是引入灰度,或者狗啃锯齿,缩放下基本就是要重画的节奏。 涵潇舒雅 发表于 2021-8-5 16:10
楼主,您手里有没有这个字体的bmp文件,刚试了下字体有点大,想在您的基础上缩放下 这样就不用一 ...
图给你,这是取模前最后一步的 1bpp 二值图,缩不缩得好就看你功力了: 本帖最后由 涵潇舒雅 于 2021-8-5 17:28 编辑
t3486784401 发表于 2021-8-5 16:23
图给你,这是取模前最后一步的 1bpp 二值图,缩不缩得好就看你功力了:
非常感谢,缩放成20*40 感觉还可以{:lol:} 涵潇舒雅 发表于 2021-8-5 17:25
非常感谢,缩放成20*40 感觉还可以
看样子还行,偶尔有毛刺 t3486784401 发表于 2021-8-5 17:33
看样子还行,偶尔有毛刺
嗯嗯,大体能接受,个别有问题再简单修一修就可以,再次感谢
页:
[1]