问题描述:
- 疫情期间,在家办公,需要老师、老板签名。
不一定都有打印机的,所以电子签名就派上了用场。
实现前提:
- 黑色手写签名图片
思路:
- 拍照为数码照片,整体图像颜色通过像素点颜色实现。
只要摘出黑色笔迹所在,将其余颜色替换为白色透明即可。
实现环境:
- python 3
- PIL 库
直接上代码
代码内有注释
from PIL import Image
# 打开手写签名图片
img = Image.open('shouxieqianming.jpg')
# 修改颜色通道为RGBA
img = img.convert('RGBA')
# 颜色有两种RGBA和RGB,(r, g, b, a)前者有4个值,
# 后者有3个值,每个都是0到255,RGBA的a就代表透明度。
# 确定图片像素
width, height = img.size # 像素/尺度
# 循环修改各个像素点颜色和透明度
for w in range(width):
for h in range(height):
pix = img.getpixel((w,h)) # 某像素位置/坐标颜色
if(pix[0]>100 or pix[1]>100 or pix[2]>100): # 排除所有可能的非黑色
img.putpixel((w,h),(255,255,255,0)) # 白色透明
else:
img.putpixel((w,h),(0,0,0,255)) # 黑色不透明
img.save('dianziqianming.png') # 由于有透明度,只能保存 png 格式