微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何以编程方式加载和绘制/截图字体

如何解决如何以编程方式加载和绘制/截图字体

我想自动创建不同字体的符号(数字、字母)图像数据集。我目前一直通过在 Word 文档中截取屏幕截图来手动执行此操作。有没有办法以编程方式(最好在 Python 或 MATLAB 中)执行此操作?

我知道这是一个简短的问题,但我也无法在 SO 或网络上找到任何有用的起点。

解决方法

以下是基于 this 教程的示例:

import matplotlib
from PIL import ImageFont,ImageDraw,Image
import numpy as np
import random

#get a list of fonts on the system
system_fonts = matplotlib.font_manager.findSystemFonts(fontpaths=None,fontext='ttf')

def create_image(text):
  #create blank image object
  size = random.randint(10,16)
  length = random.randint(4,8)
  img = np.zeros(((size*2)+5,length*size,3),np.uint8)
  img_pil = Image.fromarray(img+255)

  # Drawing text in random font and random color
  font = ImageFont.truetype(random.choice(system_fonts),size)
  draw = ImageDraw.Draw(img_pil)
  draw.text((5,10),text,font=font,fill=(random.randint(0,255),random.randint(0,255)))

  #save image
  img_pil.save(f"{text}.jpg")

您可以解析单个文本 (create_image('test')) 或生成随机字符串列表并循环它们。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。