如果在某个网站上发布了图片,希望在图片上会出现带标识的水印着怎么办呢。
这个是个比较常见的需求,在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官方文档: