营业执照数据生成

news/2024/11/19 13:19:29/
import pandas as pd
from PIL import Image
from PIL import ImageFilter
from PIL import ImageEnhance
import cv2
from PIL import ImageDraw, ImageFont
from PIL._imaging import fontimport csv
import codecs
#两个函数用于保存需要的坐标点
# def save_to(path,name):
#     # file_csv =open(path,"a+",newline='',encoding="utf-8")
#     file_csv = codecs.open(path, 'a+', 'utf-8')  # 追加
#     # writer=csv.writer(file_csv)
#     writer = csv.writer(file_csv, delimiter=',', quotechar=',', quoting=csv.QUOTE_MINIMAL)
#     for data in name:
#         writer.writerow(data)def save_to(name,data):f = open(name,"a+",newline='',encoding='utf-8')csv_writer = csv.writer(f)csv_writer.writerow(data)f.close()data=pd.read_csv('E:\qichacha\data\qichacha.csv',encoding='gbk')
#字体大小
fnt = ImageFont.truetype(r'E:\qichacha\gen_data\WeiRuanYaHei-1.ttf', 18)
fnt2 = ImageFont.truetype(r'E:\qichacha\gen_data\WeiRuanYaHei-1.ttf', 22)
fnt3 = ImageFont.truetype(r'E:\qichacha\gen_data\WeiRuanYaHei-1.ttf', 24)
fnt4 = ImageFont.truetype(r'E:\qichacha\gen_data\WeiRuanYaHei-1.ttf', 20)
# 按下列方式计算其余坐标
# [宽,高,宽+w,高,宽,高+h,宽+w,高+h]
for i in range(0,len(data)-1):im = Image.open('E:\qichacha\gen_data\model.jpg')draw = ImageDraw.Draw(im)#draw.text(左上坐标, 书写内容, fill='颜色', font=字体)draw.text((637, 566), data.iloc[i]['信用代码'], fill='black', font=fnt)  # 信用代码w, h = fnt.getsize(data.iloc[i]['信用代码'])# [宽,高,宽+w,高,宽,高+h,宽+w,高+h]a=[637,566,637+w,566,637,566+h,637+w,566+h,data.iloc[i]['信用代码']]#保存两种格式为后面使用方便save_to("E:\qichacha\data\zuobiao\\txt\{}.txt".format(i), a)save_to("E:\qichacha\data\zuobiao\\csv\{}.csv".format(i), a)loc1 = len(data.iloc[i]['登记机关'])for k in range(0,int(loc1/8)+1):#字体超过8个字,就换行try:draw.text((660, 1222+k*30), data.iloc[i]['登记机关'][k*8:k*8+8], fill='black', font=fnt3)  # 登记机关w, h = fnt3.getsize(data.iloc[i]['登记机关'][k*8:k*8+8])# [宽,高,宽+w,高,宽,高+h,宽+w,高+h]a = [660,1222+(k*30),660+w,1222+(k*30),660, 1222+(k*30)+h, 660+w,1222+(k*30)+h,data.iloc[i]['登记机关'][k*8:k*8+8]]save_to("E:\qichacha\data\zuobiao\\txt\{}.txt".format(i), a)save_to("E:\qichacha\data\zuobiao\\csv\{}.csv".format(i), a)except:passif k==4:#超过5行就不显示,可以调整breakloc2 = len(data.iloc[i]['注册地址'])for j,m in enumerate(['企业名称','类型','注册地址','法定代表人','注册资本','成立日期','营业期限']):# print(m)if m=="注册地址":#防止字数超过图片本身draw.text((330, 635 + j * 40), data.iloc[i][m][0:30], fill='black', font=fnt2)w, h = fnt2.getsize(data.iloc[i][m][0:30])# [宽,高,宽+w,高,宽,高+h,宽+w,高+h]a = [330, 635 + (j * 40), 330 + w, 635 + (j * 40), 330, 635 + (j * 40) + h, 330 + w, 635 + (j * 40) + h,data.iloc[i][m]]save_to("E:\qichacha\data\zuobiao\\txt\{}.txt".format(i), a)save_to("E:\qichacha\data\zuobiao\\csv\{}.csv".format(i), a)else:draw.text((330, 635+j*40),data.iloc[i][m], fill='black', font=fnt2)  # 企业名称,类型,注册地址,法定代表人,注册资本,成立日期,营业期限w, h = fnt2.getsize(data.iloc[i][m])# [宽,高,宽+w,高,宽,高+h,宽+w,高+h]a = [330, 635+(j*40), 330 + w, 635+(j*40), 330, 635 + (j*40) + h, 330 + w, 635 + (j*40)+ h,data.iloc[i][m]]save_to("E:\qichacha\data\zuobiao\\txt\{}.txt".format(i), a)save_to("E:\qichacha\data\zuobiao\\csv\{}.csv".format(i), a)loc = len(data.iloc[i]['经营范围'])for n in range(0,int(loc/30)+1):try:draw.text((330, 920 +n*30),data.iloc[i]['经营范围'][n*30:n*30+30], fill='black', font=fnt4)  # 经营范围w, h = fnt4.getsize(data.iloc[i]['经营范围'][n*30:n*30+30])# [宽,高,宽+w,高,宽,高+h,宽+w,高+h]a = [330, 920 +(n*30), 330 + w, 920 +(n*30), 330, 920 + (n*30) + h, 330 + w, 920 + (n*30) + h,data.iloc[i]['经营范围'][n * 30:n * 30 + 30]]save_to("E:\qichacha\data\zuobiao\\txt\{}.txt".format(i), a)save_to("E:\qichacha\data\zuobiao\\csv\{}.csv".format(i), a)except:passif n==5:draw.text((330, 920 + (n+1) * 30), u'.............', fill='black', font=fnt4)#多余6行就写省略号w, h = fnt4.getsize(".............")a = [330, 920 +((n+1)*30), 330 + w, 920 + ((n+1)*30), 330, 920 + ((n+1)*30)+ h, 330 + w, 920 + ((n+1)*30) + h,"............."]save_to("E:\qichacha\data\zuobiao\\txt\{}.txt".format(i), a)save_to("E:\qichacha\data\zuobiao\\csv\{}.csv".format(i), a)breakprint("成功--{}".format(data.iloc[i]['企业名称']))im.save('E:\qichacha\img\yingye\{}.jpg'.format(data.loc[i]['信用代码']))#保存import os
import cv2
import numpy as np
n=0
a=0
#图片的融合。保存用循环数字。
path = r"E:\qichacha\background"
path1=r"E:\qichacha\img\yingye"
for i in os.listdir(path):#生成的营业执照路径back = os.path.join(path, i)image = cv2.imread(back)k = 0for j in os.listdir(path1):#营业执照back1= os.path.join(path1, j)logo = cv2.imread(back1)# num = (logo.width, logo.height)height, width = logo.shape[0:2]#获取宽高#图片按宽高缩放cv2.resize(图片, 缩放大小)image_1=cv2.resize(image, (width, height))logo_1=cv2.resize(logo, (width, height))#融合图片cv2.addWeighted(主图、背景图, 权重, 辅图, 权重, 0)image_copy = cv2.addWeighted(logo_1, 0.8, image_1, 0.2, 0)cv2.imwrite("E:\qichacha\img\\beijing\{}.jpg".format(a), image_copy)# cv2.waitKey(0)# cv2.destroyAllWindows()print("成功--{}{}".format(data.iloc[k]['企业名称'],n))k += 1a+=1n+=1
#保存图片,用信用代码,前面加0,1,2区分不同的噪声
# n=0
# path = r"E:\qichacha\background"
# path1=r"E:\qichacha\img\yingye"
# for i in os.listdir(path):#背景图
#     back = os.path.join(path, i)
#     image = cv2.imread(back)
#     k = 0
#     for j in os.listdir(path1):#营业执照
#         back1= os.path.join(path1, j)
#         logo = cv2.imread(back1)
#         # num = (logo.width, logo.height)
#         height, width = logo.shape[0:2]
#         image_1=cv2.resize(image, (width, height))
#         logo_1=cv2.resize(logo, (width, height))
#         image_copy = cv2.addWeighted(logo_1, 0.6, image_1, 0.4, 0)
#         cv2.imencode('.jpg', image_copy)[1].tofile("E:\qichacha\img\\beijing\{}{}".format(n,j))
#         cv2.waitKey(0)
#         cv2.destroyAllWindows()
#         print("成功--{}{}".format(n,j))
#         k += 1
#     n+=1#单张图片的融合
# image=cv2.imread(r'E:\qichacha\background\\1.jpg')#背景图
# logo = cv2.imread(r'E:\qichacha\img\yingye\\91110000MA00GXCN9M.jpg')#生成的营业执照
# # 图像融合
# height,width=logo.shape[0:2]
# # print(width,height)
# # a=cv2.resize(image, (width, height))
# image_1=cv2.resize(image, (width, height))
# logo_1=cv2.resize(logo, (width, height))
# combine = cv2.addWeighted(logo_1, 0.9, image_1, 0.1,0)
# cv2.imshow('s',combine)
# cv2.waitKey(0)
# cv2.destroyAllWindows()
# cv2.imwrite("E:\qichacha\img\\beijing\j2.jpg", combine)#保存英文名字
# cv2.imencode('.jpg', image_copy)[1].tofile("E:\qichacha\img\\beijing\{}{}.jpg".format(data.iloc[k]['企业名称'], n))#保存中文名#单张营业执照的生成
# im = Image.open('E:\qichacha\gen_data\model.jpg')
# draw = ImageDraw.Draw(im)
# draw.text((330,633), data.iloc[118,1], fill='black', font=fnt2)#企业名称
# w, h = fnt2.getsize(data.iloc[118,1])#宽高
# print(w,h)
# draw.text((330,675), data.iloc[118,6], fill='black', font=fnt2)#企业类型
# draw.text((330,715), data.iloc[118,9], fill='black', font=fnt2)#注册地址
# draw.text((330,755), data.iloc[118,2], fill='black', font=fnt2)#法定代表人
# draw.text((330,800), data.iloc[118,4], fill='black', font=fnt2)#注册资本
# draw.text((330,840), data.iloc[118,3], fill='black', font=fnt2)#成立日期
# draw.text((330,880), data.iloc[118,7], fill='black', font=fnt2)#营业期限# loc=len(data.iloc[118,10])
# for i in range(0,int(loc/30)):
#     try:
#         draw.text((330,920+i*30), data.iloc[117,10][i*30:i*30+31], fill='black', font=fnt4)#经营范围
#     except:
#         pass
#     if i==5:
#         draw.text((330, 920 + (i+1) * 30), u'.............', fill='black', font=fnt4)
#         break
#
# draw.text((637,566), data.iloc[118,0], fill='black', font=fnt)#信用代码
# draw.text((650,1222), data.iloc[118,8], fill='black', font=fnt3)#登记机关
# im.show()# image=Image.open(r'E:\qichacha\background\1.jpg')#背景图
# logo = Image.open(r'E:\qichacha\img\营业执照\安徽淘宝村实业集团有限公司.jpg')#生成的营业执照
# num=(image.width,image.height)
# logo.thumbnail(num)#缩小营业执照,背景图大小
# image_copy=image.copy()#复制图像背景图
# x = int(random.randint(0,  (image_copy.width- logo.width)+ 1))#随机生成背景图和营业执照宽的差值之间的数值
# y= int(random.randint(0, (image_copy.height - logo.height) + 1))#随机生成背景图和营业执照高的差值之间的数值
# image_copy.paste(logo,(x,y))  #将营业执照放到指定粘贴位置(左上角坐标)
# resize(temImage, dstImage2, Size(temImage.cols * 2, temImage.rows * 2), 0, 0, INTER_LINEAR)
# plt.imshow(image_copy)
# plt.show()
# image_copy.save('E:\qichacha\img\背景营业执照\j2.jpg')#保存
数据:csv文件:https://download.csdn.net/download/yangzheng_520/21979543

模板:https://download.csdn.net/download/yangzheng_520/21979571

不行的按照前面文章自己爬取

关注一下,谢谢


http://www.ppmy.cn/news/497412.html

相关文章

广告设计和平面设计区别是什么?

大家好我是微风,一个爱设计爱生活的平面设计师,最近总有一些朋友问我,什么是广告设计,什么是平面设计,广告设计和平面设计区别是什么,那么今天的这篇文章主要给大家介绍下广告设计和平面设计区别是什么&…

安卓商店应用商城申请需要资料

Oppo应用商店 所需文件列表 企业营业执照法人代表身份证 要求:a、企业营业执照扫描件必须为彩色,要求照片清晰,字迹清楚,无遮挡或涂改; b、提供的营业执照经营范围必须与互联网有相关关系,否则不予审核通过…

商标和字号的五大区别

商标和字号的五大区别 1、核发机关不一样 注册商标是有国家知识产权局核发的,商标申请人需要提交相应的材料至国家知识产权局商标就进行商标注册申请,审核通过后才会获得商标注册证书。而公司字号是工商行政管理部们核发的,在注册公司的时候也…

阿里云域名备案

2019独角兽企业重金招聘Python工程师标准>>> 首先购买域名,虽然说域名没实名认证不能解析,但是可以先弄邮箱(如果有需要的话) 邮箱只能使用QQ的地址登录,而不能使用mail.youdomain.com登录(不允许和未解析) 这时可以顺便开通一下对…

vue 打印(模板套打)

vue 使用 print-template 生成pdf 打印 。支持生成二维码、条形码、文本、图片、线 安装 yarn add print-template或npm install print-template 内容类型 line线条barcode条形码qrcode二维码image图片text文本 内容属性 通用 x必须 所有类型 y必须 所有类型 default固定…

网店工商信息图片文字提取

首先非常抱歉,最近一段时间由于学校课程作业较多,外加个人较懒,所以一直没有更新文章,以后一定会勤奋点,多加更新。正如前几天在stormzhang**(张哥)**的公众号里看到的一样,写作其实并不难,每个…

美团算法团队:深度学习在美团OCR中的应用!

http://blog.itpub.net/31077337/viewspace-2157198/ AI(人工智能)技术已经广泛应用于美团的众多业务,从美团App到大众点评App,从外卖到打车出行,从旅游到婚庆亲子,美团数百名最优秀的算法工程师正致力于将AI技术应用于搜索、推荐…

版权中心对软著手册及代码的要求

软著申请材料: 1、软件著作权申请表。 2、软件源代码:提供前、后各连续30页共60页,不低于3000行的源代码。 3、软件操作手册:图文形式不低于15页,操作界面截图。 4、身份证明资料:企业:单位营业…