Pillow 10行代码给营业执照模板写数据,批量生产

本文介绍了如何使用Python的OpenCV和PIL库为图片添加中文标签,特别是在车辆属性和车牌识别场景中。通过指定支持中文的字体文件(如simsun.ttc),可以将营业执照模板的数据填充到图片上,包括企业名称、企业类型等信息。代码示例展示了如何设置字体大小、位置以及处理过长的字符串。此外,还提供了从CSV数据读取信息并批量处理图片的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于给图片打标签,我们经常使用opencv来,但是在遇到中文成为流行语言的时候,给图片写上中文成为一大亮点。

简介

就例如在车辆属性、车牌识别的时候,我们经常会使用得到中文。
在这里插入图片描述
下面是根据营业执照的模板样式给它赋予数据(内容)
在这里插入图片描述

在这里我们需要设置字体,我们需要选取能够支持中文的字体,font

单张图片标注

font = ImageFont.truetype("./simsun.ttc",25)
font_1 = ImageFont.truetype("./simsun.ttc",20)
im1 = Image.open('./model.jpg')
draw = ImageDraw.Draw(im1)
draw.text((345,640),'企业名称', (0, 0, 0),font=font)#企业名称
draw.text((345,640+1*40),'企业类型', (0, 0, 0),font=font)#企业类型
draw.text((345,640+2*40),'所属地区', (0, 0, 0),font=font)#所属地区
draw.text((345,640+3*40),'法定代表人', (0, 0, 0),font=font)#法定代表人
draw.text((345,640+4*40),'注册资本', (0, 0, 0),font=font)#注册资本
draw.text((345,640+5*40),'成立日期', (0, 0, 0),font=font)#成立日期
draw.text((345,640+6*40),'营业期限', (0, 0, 0),font=font)#营业期限
"""
在这里我们由于有的字符串太长,我们只能截取前面的数据来展示
"""
len_d = len('经营范围')#这里是经营范围的字符串
for lo in range(0,int(len_d/30)+1):
    try:
        draw.text((345,925+lo*33), '经营范围'[lo*30:lo*30+30], (0, 0, 0), font=font_1)
    except:
        pass
    if lo==7:
        break
draw.text((650, 568), '统一社会信用代码', (0, 0, 0), font=font_1)

结果

在这里插入图片描述

完整代码

from PIL import Image, ImageDraw, ImageFont
import pandas as pd


word_size = 18  # 文字大小
"""
STXINGKA.TTF华文行楷   
simkai.ttf 楷体  
SIMLI.TTF隶书  
"""

font = ImageFont.truetype("./simsun.ttc",25)
font_1 = ImageFont.truetype("./simsun.ttc",20)
data = pd.read_csv('./data_chuli.csv')

for i in range(0,120):
    im1 = Image.open('./model.jpg')
    draw = ImageDraw.Draw(im1)
    strs  =data.loc[i]
    draw.text((650, 568), strs['统一社会信用代码'], (0, 0, 0), font=font_1)
    for id,_p in enumerate(['企业名称','企业类型','所属地区','法定代表人','注册资本','成立日期','营业期限']):
        print(strs[_p])
        draw.text((345,640+id*40),strs[_p], (0, 0, 0),font=font)
    len_d = len(strs['经营范围'])
    for lo in range(0,int(len_d/30)+1):
        try:
            draw.text((345,925+lo*33), strs['经营范围'][lo*30:lo*30+30], (0, 0, 0), font=font_1)
        except:
            pass
        if lo==7:
            break
    #im1.save('./imgs/{}.jpg'.format(strs['统一社会信用代码']))

希望这篇文章对你有用!

谢谢点赞评论!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值