Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

Gray-Ice

个人博客兼个人网站

原图:

加水印后:

使用python的PIL库给图片添加水印:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 绘画库
from PIL import ImageDraw
# 字体库
from PIL import ImageFont
# 图片库
from PIL import Image


# 图片添加水印
def make_watermark(file_path, new_name, fonts, size, font_path):
'''

:param file_path: the path of your image file, it must be string.
:param new_name: The new name of your picture, it must be string.
:param fonts: The font that you want to add on your picture,it must be string.
:param size: the size of your watermark.
:param font_path: The path of your font file.
:return: if it could work normally, it will return True, if not,it will return False.
'''
try:
font = ImageFont.truetype(font_path, size)
im = Image.open(file_path)
print(im.format, im.size, im.mode)
# 生成画笔
draw = ImageDraw.Draw(im)
# 绘制
draw.text((0, 0), fonts, fill=(76, 234, 124, 180), font=font)
draw = ImageDraw.Draw(im)
im.save(new_name)
except Exception:
return False

注释是我自己写的,但是由于我的英语太渣了,怕大家看不懂(其实是防止自己看不懂)就来解释一下:

这里的file_path参数是图片路径,如”./image.png”,new_name是生成的图片的名字,fonts是要添加的水印内容,size是要添加的文字的大小,单位应该是像素,font_path是字体文件路径。

1
draw.text((0, 0), fonts, fill=(76, 234, 124, 180), font=font)

这一行有必要解释一下,那个(0, 0)分别代表了水印的x, y轴,注意不要调的超过图片尺寸,不然水印就飞出图片了。。。fill=(, , , )这个相信大家都清楚,是RGBA。

关于添加中文水印,这里需要说明一下,那就是你的font_path, 即字体文件必须是要能够支持中文的,比如: 华文新魏.ttf, 华文彩云.ttf,千万不要用不支持中文的字体文件,不然return False给你看!切记切记。

那么本篇博客就到这里了, bye~。

评论



愿火焰指引你