Python脚本内嵌base64编码点阵字体,方便图片填充文字
我们知道 Pillow
图像库的 ImageFont
类 PIL.ImageFont.load_default()
源码 是使用 base64
编码把一组点阵字库写到库里,我们可以参考他的源码,把自己的点阵字库使用同样的方法写到脚本文件,方便程序调用。
经过调试完成内嵌base64编码点阵字体库 bitfont.py
开源下载
下载
bitfont.py
文件,输入如下命令,就能显示演示图python3 bitfont.py
使用 bitfont.py
库代码示例
- 导入内嵌base64编码点阵字体库
import bitfont
后,可以使用添加的2个点阵字体Fixedsys
和VCRMono16
,还可以使用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()