吾八哥博客

您现在的位置是:首页 > 码农手记 > Python > 正文

Python

用Python实现给图片加水印的功能

吾八哥2018-01-14Python903

近日想给一个文件夹内的所有图片加上水印,第一时间就是想到要用Python来实现这个功能,有想法了就开始借助搜索引擎查阅相关的资料,现在整理具体代码如下,这里使用的是Pillow库。

安装Pillow库

使用pip install Pillow命令很方便的完成该库的安装

实现添加图片水印

# Autor: 5bug
# WebSite: http://www.5bug.wang

from PIL import Image, ImageDraw, ImageFont

def addImageWatermark(srcfile, desfile, logofile):
 img = Image.open(srcfile)
 logo = Image.open(logofile)
 layer = Image.new('RGBA', img.size, (0, 0, 0, 0))
 layer.paste(logo, (img.size[0] - logo.size[0], img.size[1] - logo.size[1]))
 out = Image.composite(layer, img, layer)
 out.save(desfile)

addImageWatermark('C:/Users/MyTest/Pictures/test1.jpg', 'C:/Users/MyTest/Pictures/test1_1.jpg', 'C:/Users/MyTest/Pictures/logo.png')

实现添加文字水印

# Autor: 5bug
# WebSite: http://www.5bug.wang

from PIL import Image, ImageDraw, ImageFont

def addTextWatermark(srcfile, desfile, logoText):
    img = Image.open(srcfile)
    font = ImageFont.truetype('C:\WINDOWS\Fonts\BuxtonSketch.ttf', 36)
    textsize = font.getsize(logoText)
    draw = ImageDraw.Draw(img)
    draw.text((img.size[0] - textsize[0], img.size[1] - textsize[1]), logoText, (255, 0, 0), font=font)
    draw = ImageDraw.Draw(img)
    img.save(desfile)

addTextWatermark('C:/Users/MyTest/Pictures/test1.jpg', 'C:/Users/MyTest/Pictures/test1_1.jpg', 'www.5bug.wang')


再稍作改动即可实现针对某个文件夹内的所有图片批量添加水印了!