受到“手动给证件加文字太麻烦”的感触,想用Python来实现给图片加水印,这不方便多了。
这里使用PIL模块:
from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw
img_t = Image.open('cat.jpg')
img_size_t = img_t.size
w = img_t.width
h = img_t.height
f = img_t.format
print(img_size_t)
print(w,h,f) # 得到图片大小和 图片格式
# img_path 原图片路径
# output_path 处理后,输出的图片路径
# text 要添加的水印文字
def watermark_Image3(img_path, output_path, text):
img = Image.open(img_path)
drawing = ImageDraw.Draw(img)
text_t = text
init_y = 200
for x in range(100, 2300, 500):
for y in range(init_y, 1400, 200):
# font = ImageFont.truetype("simsun.ttc", size= 80) # 设置字体和文字大小
# 选择系统字体 r'C:/Windows/Fonts/Arial.ttf'
font = ImageFont.truetype(r'C:/Windows/Fonts/Impact.ttf', size= 80) # 设置字体和文字大小
drawing.text((x,y), '{}!'.format(text_t), font=font, fill='red') # 文本左上角坐标,文本内容(我还在文本后加了个!),文本颜色 。
# fill也可以使用RGB编码设置颜色,如 fill=(256,256,256)
if init_y <= 200: # 使每列水印有个高度差
init_y += 100
else:
init_y -= 100
img.show()
img.save(output_path) # 保存
img_path_t = 'cat.jpg'
watermark_Image3(img_path_t, 'cat_watermarked3.jpg', 'cat')