【Python】实现公章自动化生成以及自动盖章效果

news/2024/10/23 9:39:19/

前言:因为工作中需要经常自己盖章到模板图片上然后去打印签名,每次基本都是一个重复循环的过程,遂探索是否可以变成自动化脚本供我提高工作效率,同时在这次编码中我也使用chatgpt帮我实现一些代码,整个功能开发的过程非常快。

patr1:
【实现贴图盖章的功能】
原理很简单提取背景颜色区域将其RGBA中的透明度通道设置为0,然后把背景图片的显示内容贴到原图的背景区域即可

from PIL import Image# 打开图像A和图像B
def func_seal(background,stamp,ret_name,x,y):imageA = Image.open(stamp)#章imageB = Image.open(background)#表# 将图像A的背景色设置为透明imageA = imageA.convert("RGBA")datas = imageA.getdata()newData = []for item in datas:if item[0] == 255 and item[1] == 255 and item[2] == 255:newData.append((255, 255, 255, 0))else:newData.append(item)imageA.putdata(newData)# 在图像B上粘贴图像A,并将B的背景色设置为A的透明区域的背景色imageB.paste(imageA, (x, y), imageA)newImage = Image.new("RGBA", imageB.size, (255, 255, 255, 255))newImage.paste(imageB, (0, 0), imageB)# 保存新图像newImage.save(ret_name, "PNG")return ret_name
'''test code
save_name = func_seal("template/background1.png","stamp/stamp1.png","ret.png",1000,1050)
save_name = func_seal(save_name,"stamp/stamp2.png","ret.png",1100,1450)
func_seal(save_name,"stamp/stamp3.png","ret.png",1050,1800)
'''
'''test code
save_name = func_seal("template/background2.png","stamp/stamp1.png","ret.png",1000,700)
save_name = func_seal(save_name,"stamp/stamp2.png","ret.png",1100,1050)
func_seal(save_name,"stamp/stamp3.png","ret.png",1050,1600)
'''save_name = func_seal("template/back.png","stamp/diya.png","ret.png",300,1200)

part2:
【实习自动生成公章】
因为背景模板较为单一,所以不太需要花费多少时间,但是公章数量巨大如果依靠人工生成将耗费大量精力,遂找到网络上一个自动生成公章的网站,但是他也不能满足批量生产的需求,只能逐个生成逐个保存,通过F12查看源码找到生成的接口内容,代码如下:

import requests
import urllib.parse
from PIL import Image
import xlrddef func_get_stamp_png(name):# 定义API的地址out_put_name = "stamp/"+name+".png"url = "http://www.yinzhang8.com.cn/seal/index.php?name="url += urllib.parse.quote(name)url += "&type=1"# 发送HTTP请求response = requests.get(url)print(response.status_code)#print(response.text)print(type(response))# 将返回的二进制数据保存为本地文件with open(out_put_name, "wb") as f:f.write(response.content)# 打开图片文件img = Image.open(out_put_name)# 获取图片的宽度和高度width, height = img.size# 计算需要裁剪的高度crop_height = int(height * 0.1)# 裁剪图片cropped_img = img.crop((0, 0, width, height - crop_height))# 覆盖保存原始文件cropped_img.save(out_put_name)# 打开xls文件
workbook = xlrd.open_workbook('章内名称.xls')# 选择第一张表格
worksheet = workbook.sheet_by_index(0)# 从第二行开始逐行读取内容
for row_index in range(1, worksheet.nrows):row = worksheet.row_values(row_index)# 打印该行的内容#print(type(row))mystr = "".join(row)print(mystr)func_get_stamp_png(mystr)#time.sleep(1)

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

相关文章

前端工程化第二章:webpack5基础(中)

文章目录 1. 处理css资源(css文件拆分 mini-css-extract-plugin)1.1. package.json1.2. webpack.config.js 2. 处理预编译器(less/scss)2.1. src/index.js2.2. src/index.less2.3. src/index.scss2.4. webpack.config.js 3. 适配&…

Kafka-partition和消费者的关系

Kafka-partition 目录概述需求: 设计思路实现思路分析1.Kafka-partition2.消费者数量小于分区数量3. 拓展实现 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a…

最新IT类offer档次排名

上一篇:阿里巴巴裁员19576人! 首先给大家看一份网上流传的《IT类offer档次排名》 第一档:股份制银行总行,证券公司,基金公司IT部门(民生,中信,兴业,浦发,南方…

与ChatGPT 技术对话 42 天后,30多岁男子过于焦虑自杀身亡...

点击“开发者技术前线”,选择“星标” 让一部分开发者看到未来 来自:极目新闻 最近ChatGPT的飞速发展引起了世界范围的广泛关注,有人兴奋,也有人担忧。 据比利时媒体LAvenir3月28日报道,一名热衷于环境问题的比利时男子…

人工智能轨道交通行业周刊-第45期(2023.5.15-5.21)

本期关键词:动车洗澡、热备列车、火车司机室、无缝线路、图像分割、自动标注 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro轨道…

【项目设计】基于负载均衡的在线oj平台

目录 一、项目介绍 二、开发环境以及技术 三、概要设计 四、关键算法 五、项目演示 六、代码实现 一、项目介绍 该项目是基于负载均衡的在线oj,模拟平时刷题网站(leetcode和牛客)写的一个在线判题系统 项目主要分为五个模块&#xff…

基于Python的简易评论区抽奖

文章目录 前言引入模块获取博客评论抽取用户程序入口效果 总结最后 前言 博主空空star主页空空star的主页 大家好,我是空空star,本篇给大家分享一下《基于Python的简易评论区抽奖》。 引入模块 import random import requests获取博客评论 size设置为1…

20230723红米Redmi Note8Pro掉在水里的处理步骤

20230723红米Redmi Note8Pro掉在水里的处理步骤 2023/7/23 18:18 百度搜搜:小米手机进水 破音怎么处理 Redmi Note8Pro 6400万全场景四摄 液冷游戏芯 4500mAh长续航 NFC 18W快充 红外遥控 https://www.zhiliancy.com/a/q5podmr12.html 首页 / 热文 / 内容 小米喇叭…