蘭雅sRGB 个人笔记 https://262235.xyz
提供编程和电脑应用视频教程,工具和源代码
C, C++, Python Programming, Source Code, Video

旧Hexo博客 | Github | IP定位WebAPI | Docker Hub
编程中文文档 | 网盘分享 | 中文Linux命令

Python脚本内嵌base64编码点阵字体,方便图片填充文字

Python脚本内嵌base64编码点阵字体,方便图片填充文字

我们知道 Pillow 图像库的 ImageFontPIL.ImageFont.load_default() 源码 是使用 base64 编码把一组点阵字库写到库里,我们可以参考他的源码,把自己的点阵字库使用同样的方法写到脚本文件,方便程序调用。

经过调试完成内嵌base64编码点阵字体库 bitfont.py 开源下载

bitfont.png

  • 下载 bitfont.py 文件,输入如下命令,就能显示演示图
python3 bitfont.py

使用 bitfont.py 库代码示例

  • 导入内嵌base64编码点阵字体库 import bitfont 后,可以使用添加的2个点阵字体 FixedsysVCRMono16,还可以使用 bitfont.load_background() 加载一张图片底图
from PIL import Image, ImageDraw, ImageFont
import bitfont

im = bitfont.load_background()
(width, height) = (400, 310)
im = im.resize((width, height))
draw = ImageDraw.Draw(im)

font_fds = bitfont.load_fixedsys()
draw.text((5, 10), "FontName: Fixedsys", (0, 0, 0),  font=font_fds)

font_vcr = bitfont.load_vcrmono()
draw.text((5, 40), "FontName: VCRMono16.pil", font=font_vcr)

draw.text((5, 90), bitfont.text[1], font=font_fds)

font = bitfont.load_default()
draw.text((5, 70), "FontName: PIL_default", (0, 255, 0),  font=font)

draw.text((5, 140), "load_background: 50x50 Color Png image", (255, 255, 0),  font=font_fds)
draw.text((5, 160), "Fixedsys12.pil & Fixedsys12.pbm Fixedsys font.", (255, 255, 255),  font=font_fds)
draw.text((5, 200), "VCRMono16.pil VCR_OSD_MONO font.", (128, 255, 128),  font=font_vcr)

im.save("bitfont_01.png")
im.show()

在此之前已经已经把TTF转BDF再转PIL字体的工具和学习代码都放开源项目了

https://github.com/hongwenjun/pillow_font

有兴趣学 Python 图像库字体使用,可以下载使用参考

本原创文章自由转载,转载请注明本博来源及网址 | 当前页面:蘭雅sRGB 个人笔记 » Python脚本内嵌base64编码点阵字体,方便图片填充文字