本帖最后由 审判者压缩 于 2022-5-4 20:48 编辑
【原创源码】【python3】生成电子身份证的自动化工具【不完善需要精细化】
事情起因
- 论坛有人需要个根据【身份证号码,姓名,性别】生成电子身份证的自动化工具,用以扫描识别,减轻工作压力
-
身份证相关
- 身份证大小:长85.6mm*宽54mm;长度:240像素,高度:151像素。
- 身份证号码字体 [OCR-B 10 BT] 姓名 [方正黑体简体]
-
思路
- 用py3生成文字附加到背景上
- 因为不知道识别到什么程度,先按以下修改思路试一试
-
- 用自己的身份证背景,扣掉原有的姓名身份证号码和性别还有其他的文字,重命名image作为背景
-
-
-
-
-
- 身份证号码的间距如果可以忽略就不用一位一位确定位置了,否则就要一位一位确认位置
结果
- 识别不出来,估计是识别软件比较精细,我整的太粗糙了。
代码[py3.10.2]
import cv2
import numpy as np
from PIL import ImageFont, Image, ImageDraw
def write_pic(身份证号,姓名,性别,序号):
#找个背景,扣掉原有的姓名身份证号码和性别还有其他的文字,重命名image作为背景
# 设置需要显示的字体
bk_img = Image.open("image.jpg")
font身份证号 = ImageFont.truetype("OCR-B 10 BT.ttf", 60)#设置好字体
font姓名 = ImageFont.truetype("方正黑体简体.TTF", 48)#设置好字体
font性别 = ImageFont.truetype("方正黑体简体.TTF", 48)#设置好字体
draw = ImageDraw.Draw(bk_img)
# 绘制文字信息
#在背景上确定好身份证号码的像素位置
draw.text((530,800), 身份证号,font=font身份证号, fill=(0,0,0))
#在背景上确定好性别的像素位置
draw.text((300,145), 姓名,font=font姓名, fill=(0,0,0))
#在背景上确定好性别的像素位置
draw.text((290,275), 性别,font=font性别, fill=(0,0,0))
bk_img = np.array(bk_img)
cv2.waitKey()
createName = str(序号) + ".jpg"
cv2.imwrite(createName, bk_img)
write_pic("220122199112121212","张三","男",1)
参考文章:
相关函数用法
|