Pillow为图片添加水印
为图片添加水印能够在一定程度上避免其他人滥用您的图片,这是保护图片版权的一种有效方式。因此,当您在微博、或者博客等一些公众平台分享图片的时候,建议您为自己的图片添加一个水印,来证明这张图片属于您。
添加水印的方式的有很多种,比如通过一些图像处理软件,或者手机美图软件都可以实现添加水印的操作,但是这种操作比较复杂,甚至有些软件还不是免费的。
Pillow库提供了添加水印的方法,操作简单,易学、易用。下面我们讲解如何使用PIilow给图片添加水印。
我们知道,水印是附着在原图片上一段文字信息,因此添加水印的过程中会涉及两个问题:
第一、如何使文字信息附着在图片上;
第二、如何绘制文字信息。
只要解决了这两个问题就可以成功添加水印。Pillow提供的ImageDraw和ImageFont模块成功解决了上述问题。ImageDraw
PIL。ImageDraw模块提供了一系列的绘图方法,通过该模块可以创建一个新的图形,或者在现有的图像上再绘制一个图形,从而起到对原图注释和修饰的作用。
下面创建一个ImageDraw对象,并对该对象的使用方法做简单介绍:drawImageDraw。Draw(im)1复制代码类型:〔javascript〕
上述方法会返回一个ImageDraw对象,参数im表示Image对象。这里我们可以把Image对象理解成画布,通过调用ImageDraw对象的一些方法,实现了在画布上绘制出新的图形目的。ImageDraw对象的常用方法如下表所示:
方法
说明
text
在图像上绘制文字
line
绘制直线、线段
eclipse
绘制椭圆形
rectangle
绘制矩形
polygon
绘制多边形
表格中第一个方法text()需要与ImageFont模块一起使用,在下面会做详细介绍。
绘制矩形图的语法格式如下:draw。rectangle(xy,fillNone,outlineNone)1复制代码类型:〔python〕
参数说明如下:
xy:元组参数值,以图像的左上角为坐标原点,表示矩形图的位置、图形大小的坐标序列,形如((x1。y1。x2。y2));
fill:矩形图的背景填充色;
outline:矩形图的边框线条颜色。
下面看一组简单的示例:fromPILimportImage,ImageDraw创建Image对象,当做背景图imImage。new(RGB,(200,200),colorgray)创建ImageDraw对象drawImageDraw。Draw(im)以左上角为原点,绘制矩形。元组坐标序列表示矩形的位置、大小;fill设置填充色为红色,outline设置边框线为黑色draw。rectangle((50,100,100,150),fill(255,0,0),outline(0,0,0))查看原图片im。show()保存图片im。save(C:UsersAdministratorDesktop添加矩形图。png)1234567891011复制代码类型:〔python〕
图形显示结果如下:
ImageFont
PIL。ImagreFont模块通过加载不同格式的字体文件,从而在图像上绘制出不同类型的文字,比如TrueType和OpenType类型的字体。
创建字体对象的语法格式如下:fontImageFont。truetype(font字体文件路径,size字体大小)1复制代码类型:〔python〕
如果想要在图片上添加文本,还需要使用ImageDraw。text()方法,语法格式如下:d。text((x,y),text,font,fill)1复制代码类型:〔python〕
参数说明如下:
(x,y):图像左上角为坐标原点,(x,y)表示添加文本的起始坐标位置;
text:字符串格式,要添加的文本内容;
font:ImageFont对象;
fill:文本填充颜色。
开课吧广场人才学习交流平台