1. 目标效果
2. 分析实现
- 可以使用 opencv 或者 PIL 进行绘制实现,但是由于 opencv 不能绘制中文,因此采用 PIL 进行印章制作;
- 先绘制边框和隔离线;
- 再绘制文字;
- 最后给印章添加纹理。
3. 绘制边框
3.1 绘制边框分析
- 通过 draw.rectangle 实现公用的矩形的绘制;
- 获取图像长宽 image.size;
- 计算各个矩形的起始点【三分之一宽、二分之一高】;
- 通过一个矩形,将印章分为上下两个矩形【绘制上下矩形, 注意边框占位一半】;
- 通过上边三分之一个矩形将上侧矩形平均分三份【绘制上侧中间矩形】;
- 绘制下侧右边的小矩形【绘制下侧右边的矩形】上下一起绘制;
- 绘制印章完整边框【绘制边框】。
3.2 实现代码
# 绘制印章的格子
def draw_seal_box(self):
# 获取图像长宽
w, h = self.image.size
# 计算各个矩形的起始点
# 三分之一宽
third_w = w / 3
# 二分之一高
half_h = h / 2
# 绘制下侧右边的矩形
self.draw_rect([thir