用handright库模拟处方签手写字体——by.北方区平平无奇组织
评论
收藏

用handright库模拟处方签手写字体——by.北方区平平无奇组织

经验分享
救森
2023-06-29 01:09·浏览量:3131
救森
发布于 2023-06-29 01:093131浏览

拜访医药类客户遇到需求会要求上传处方签或者知情同意书之类的,需要人工签字,再上传,目前系统审批的格式上传如下:


所以需要影刀批量在模板上加上字迹不同的模拟手写图像。这样可以节省人工编写及扫描上传的时间步骤 。

具体字体实现采用handright库,实现原理是把字体文件存储成图像形式,对字体的笔画、大小、行间距等指标进行随机变动干扰,是输出字体看上去像手写一样,能通过系统审核。

生成模板如图


每个字有一定的随机性。再通过影刀的word操作将相应位置的字体图片粘贴到处方签word的对应光标位置。

具体代码如下,需要安装pillow和handright库

import xbot

from xbot import print, sleep

from .import package

from .package import variables as glv

from PIL import Image, ImageFont

from handright import Template, handwrite


text = """

窗前明月光

疑是地上霜

举头望明月

低头思故乡

"""

template = Template(

    background=Image.new(mode="1", size=(1048, 1048), color=1),

    font=ImageFont.truetype("yeprint.TTF",size=100,encoding=''),

    line_spacing_sigma=2,  # 行间距随机扰动

    font_size_sigma=5,  # 字体大小随机扰动

    word_spacing_sigma=2,  # 字间距随机扰动

    start_chars="“([<",  # 特定字符提前换行,防止出现在行尾

    end_chars=",。",  # 防止特定字符因排版算法的自动换行而出现在行首

    perturb_x_sigma=4,  # 笔画横向偏移随机扰动

    perturb_y_sigma=2,  # 笔画纵向偏移随机扰动

    perturb_theta_sigma=0.05,  # 笔画旋转偏移随机扰动  

)

images = handwrite(text, template)

for im in images:

    assert isinstance(im, Image.Image)

    im.show()


收藏2
全部评论1
最新
发布评论
评论