python使用Pillow添加图片水印

如果在某个网站上发布了图片,希望在图片上会出现带标识的水印着怎么办呢。

python使用Pillow添加图片水印" alt="python使用Pillow添加图片水印" src="//www.dapan.cc/wp-content/uploads/2022/11/1668480966-1ba50b02907a28c.jpg">

这个是个比较常见的需求,在python中应该如何处理这一类需求呢?

需要先安装Pillow: pip install pillow

Demo代码:

importsys
fromPILimportImage,ImageDraw,ImageFont
defwatermark_with_text(file_obj,text,color,fontfamily=None):
image=Image.open(file_obj).convert('RGBA')
draw=ImageDraw.Draw(image)
width,height=image.size
margin=10
iffontfamily:
font=ImageFont.truetype(fontfamily,int(height/20))
else:
font=None
textWidth,textHeight=draw.textsize(text,font)
x=(width-textWidth-margin)/2#计算横轴位置
y=height-textHeight-margin#计算纵轴位置
draw.text((x,y),text,color,font)
returnimage
if__name__=='__main__':
org_file=sys.argv[1]
withopen(org_file,'rb')asf:
image_with_watermark=watermark_with_text(f,'py.com','red')
withopen('new_image_water.png','wb')asf:
image_with_watermark.save(f)

使用方法: python watermart.py <图片地址>

这个只是把文本嵌入到图片中的实现,其实也可以嵌入一个图片进去的。具体可以参考pillow官方文档: