python 生成印章
时间: 2023-07-06 22:35:51 浏览: 829
生成印章的过程通常需要以下几个步骤:
1. 创建一个空白图片,并设置背景颜色。
2. 在图片上绘制印章的各个元素,例如圆、方、线条等。
3. 添加文字水印,包括印章名称、日期、编号等。
4. 保存图片。
以下是一个生成印章的示例代码:
```python
from PIL import Image, ImageDraw, ImageFont
# 设置印章参数
WIDTH, HEIGHT = 200, 200 # 印章大小
FONT_SIZE = 24 # 字体大小
TEXT_COLOR = (0, 0, 0) # 字体颜色
BG_COLOR = (255, 255, 255) # 背景颜色
BORDER = 10 # 边框宽度
BORDER_COLOR = (0, 0, 0) # 边框颜色
INNER_RADIUS = 50 # 内圆直径
OUTER_RADIUS = 90 # 外圆直径
CENTER = (WIDTH // 2, HEIGHT // 2) # 圆心坐标
FONT = ImageFont.truetype('arial.ttf', FONT_SIZE) # 字体
# 创建空白图片
image = Image.new('RGB', (WIDTH, HEIGHT), BG_COLOR)
# 绘制边框
draw = ImageDraw.Draw(image)
draw.rectangle((0, 0, WIDTH-1, HEIGHT-1), outline=BORDER_COLOR, width=BORDER)
# 绘制内外两个圆
draw.ellipse((CENTER[0]-INNER_RADIUS//2, CENTER[1]-INNER_RADIUS//2, CENTER[0]+INNER_RADIUS//2, CENTER[1]+INNER_RADIUS//2), fill=BORDER_COLOR)
draw.ellipse((CENTER[0]-OUTER_RADIUS//2, CENTER[1]-OUTER_RADIUS//2, CENTER[0]+OUTER_RADIUS//2, CENTER[1]+OUTER_RADIUS//2), outline=BORDER_COLOR, width=BORDER)
# 添加文字水印
text = '印章名称'
textwidth, textheight = draw.textsize(text, font=FONT)
x = (WIDTH - textwidth) // 2
y = CENTER[1] + OUTER_RADIUS // 2 + BORDER + 10 # 留出一些间距
draw.text((x, y), text, font=FONT, fill=TEXT_COLOR)
text = '2022年1月1日'
textwidth, textheight = draw.textsize(text, font=FONT)
x = (WIDTH - textwidth) // 2
y = CENTER[1] - OUTER_RADIUS // 2 - BORDER - textheight - 10 # 留出一些间距
draw.text((x, y), text, font=FONT, fill=TEXT_COLOR)
text = '编号: 123456'
textwidth, textheight = draw.textsize(text, font=FONT)
x = (WIDTH - textwidth) // 2
y = CENTER[1] - textheight // 2 # 垂直居中
draw.text((x, y), text, font=FONT, fill=TEXT_COLOR)
# 保存图片
image.save('stamp.png')
```
在上面的代码中,我们使用了Pillow库中的Image模块、ImageDraw模块和ImageFont模块来创建、绘制和添加水印。具体步骤如下:
1. 使用`Image.new`函数创建一个大小为200x200、背景颜色为白色的空白图片。
2. 使用`ImageDraw.Draw`函数创建一个可以在图片上绘制的对象,并使用`draw.rectangle`函数绘制了一个黑色的边框,使用`draw.ellipse`函数绘制了内外两个圆。
3. 使用`ImageFont.truetype`函数加载字体文件,然后使用`draw.text`函数添加文字水印。注意,需要先使用`draw.textsize`函数计算出文字的宽度和高度,才能确定文字的位置。
4. 使用`image.save`函数保存图片。
运行代码后,会在当前目录下生成一个名为`stamp.png`的印章图片。
阅读全文