Python制作透明背景的电子印章
一、前言
今天分享一个Python 制作透明背景的电子印章的代码,代码是通过网络获得并整理的,大家可以参考和学习。
二、步骤解析
代码我已调试过了,下面是操作步骤
:
- 将代码复制到你的
py
文件中,保存在本地C盘根目录
下,名为:seal.py
- 在运行代码时,根据提示安装相应模块
- 根据你的实际情况修改代码中相应参数
Win+R
运行cmd
,在命令行中输入:python C:/seal.py
回车查看结果- 可以看到命令行中打印出相应信息,等待
图片生成
即可
至此,我们就完成了Python 制作透明背景的电子印章的程序执行,大家喜欢的记得支持一下,有遇到问题的随时找我沟通。
三、源代码和运行效果
1.源代码
'''
Python制作透明背景的电子印章
'''
# 导入包
from PIL import Image,ImageFont,ImageDraw, ImageFilter
from math import pi, cos, sin, tan
from random import randint
# 定义方法
def is_Chinese(ch):
'''判断字符是否为中文'''
if '\u4e00' <= ch <= '\u9fff':
return True
return False
def pentagram(x, y, R, yDegree=0):
'''
计算五角星各个顶点
int R:五角星的长轴
int x, y:五角星的中心点
int yDegree:长轴与y轴的夹角
'''
rad = pi / 180 # 每度的弧度值
r = R * sin(18 * rad) / cos(36 * rad) # 五角星短轴的长度
# 求取外圈点坐标
RVertex = [(x - (R * cos((90 + k * 72 + yDegree) * rad)), y - (R * sin((90 + k * 72 + yDegree) * rad))) for k in range(5)]
# 求取内圈点坐标
rVertex = [(x - (r * cos((90 + 36 + k * 72 + yDegree) * rad)), y - (r * sin((90 + 36 + k * 72 + yDegree) * rad))) for k in range(5)]
# 顶点左边交叉合并
vertex = [x for y in zip(RVertex, rVertex) for x in y]
return vertex
def circle(x, y, r):
'''计算圆的上下左右切点'''
return (x - r, y - r, x + r, y + r)
# 定义类
class Stamp:
def __init__(self, edge = 5, # 图片边缘空白的距离
H = 160, # 圆心到中层文字下边缘的距离
R = 250, # 圆半径
border = 13, # 字到圆圈内侧的距离
r = 90, # 五星外接圆半径
fill = (255, 0, 0, 120),# 印章颜色, 默认纯红色, 透明度0-255,建议90-180
words_up = "", # 上部文字
angle_up