使用PIL包给图片增加水印

今天同事认真地做了笔记发群里,然后调侃她应该加上水印,以示版权,于是小伙伴纷纷找起了图片软件,美图秀秀好像就可以。于是乎立刻想起来Python这么强大,应该可以处理,PIL(python imaging library)包安排上了。
PIL是一个强大的图像处理标准库,接口很方便,不过目前PIL只支持python 2.7版本,遗憾的是,python 2.7即将淘汰,不过没关系,我们的道友很贴心,创建了一个兼容版本pillow,可以应用于python 3.x版本,同时加入新的一些功能,不得不说,网络的力量很强大。有关PIL的教程可以看廖雪峰的官方网站
我们以下面这张图片为例,图片来源于百度网络
在这里插入图片描述
现在给这只猫咪加上水印,可以通过改变横纵坐标的大小来改变位置,同时颜色可以自己进行调。具体代码如下:

#导入包
from PIL import Image,ImageDraw,ImageFont
#图片路径,必须是当前目录下
imagefile="cat.jpg"
#打开图片
imageInfo=Image.open(imagefile)
#获取图片尺寸
print(imageInfo.size)
#设置图片水印的字体的字号
fontOne = ImageFont.truetype("‪C:\Windows\Fonts\simfang.ttf", 36)
fontTwo = ImageFont.truetype("‪C:\Windows\Fonts\simfang.ttf", 36)

#创建Draw对象,用于之后绘制文字
draw=ImageDraw.Draw(imageInfo)
#设置水印文字的位置(x,y),文本,颜色,字体字号
draw.text((imageInfo.size[0] / 11, imageInfo.size[1] / 20), u"现在不想起床", fill=(255, 0, 0), font=fontOne)
draw.text((imageInfo.size[0] / 11, imageInfo.size[1] / 20 + 40), u"今天不想上班", fill=(20, 150, 200), font=fontTwo)
#图片预览
imageInfo.show()
#图片保存
imageInfo.save("catnew.jpg")

运行代码之后,就得到图片
在这里插入图片描述
上面是直接在图片上进行增加文字水印的操作,这种对于文字水印特别方便,但是还有一种,比如要给图片增加一些标志,就可以采用另一种拼接图片的操作,详见python为图片加水印 ,不过这个代码有点问题,应该改为

from PIL import Image
#创建底图
target = Image.new('RGBA', (300, 300), (0, 0, 0, 0))
#打开头像
nike_image = Image.open("moon.jpg")
nike_image = nike_image.resize((300, 300))
#打开装饰
hnu_image = Image.open("cat.jpg")
# 分离透明通道
r,g,b=hnu_image.split()
# 将头像贴到底图
nike_image.convert("RGBA")
target.paste(nike_image, (0,0))

#将装饰贴到底图
hnu_image.convert("RGBA")
target.paste(hnu_image,(0,0))

# 预览图片
target.show()

今天get一项新的技能,以后加水印分分钟的事!?

猜你喜欢

转载自blog.csdn.net/weixin_44460780/article/details/102489222