利用 cv2 给图片添加文字

时间:2023-09-17 08:31

这是一个可根据用户输入直接在证书上写字的程序:

import os, cv2
import numpy as np
from PIL import ImageFont, ImageDraw, Imageprint('=' * 50)n = int(input('请输入本次生成证书的数量:'))
id = int(input('请输入本批证书的初始编号:'))
year = input('请输入落款的年份:')
month = input('请输入落款的月份:')for i in range(n):print('=' * 50)num = int(input('请输入鸣谢组织或公司的数目:'))bk_img = cv2.imread(r"1.png")img_pil = Image.fromarray(bk_img)draw = ImageDraw.Draw(img_pil)font = ImageFont.truetype('C:\Windows\Fonts\simhei.ttf', 20)pos = 264for i in range(num):name = input('请输入组织或公司的名称:')name += ':'draw.text((75, pos), name, font=font, fill=(0, 0, 0))pos += 21print('=' * 50)name = input('请输入捐款金额:')draw.text((300, 365), name, font=font, fill=(0, 0, 0))# font = ImageFont.truetype(r'C:\Windows\Fonts\times.ttf', 20)draw.text((287, 598), year, font=font, fill=(0, 0, 0))draw.text((377, 598), month, font=font, fill=(0, 0, 0))draw.text((358, 242), str(id), font=font, fill=(0, 0, 0))bk_img = np.array(img_pil)cv2.imencode('.jpg', bk_img)[1].tofile(r"%s.jpg" % str(id))id += 1print('图片已经生成', '='*40)
print('========================')
os.system("pause")

Copyright© 黑海资讯

鄂ICP备2023014923号