一、实现内容
为了防止我们在朋友圈中发布的图片被盗用,我们为自己的图片添加一个水印,来证明这张图片属于自己,并将其保存在自己的电脑上。
二、实现步骤
2.1 安装模块
pillow
模块是一个第三方图像处理模块,主要用于图像的基本处理,在命令行窗口中执行
pip install pillow 或者 pip3 install pillow
若在自己电脑上安装不上或安装缓慢,可使用以下命令进行加速:
pip install pillow==9.1.0 -i https://pypi.mirrors.ustc.edu.cn/simple/
当看到Successfully installed...
时,说明模块已经安装成功。
2.2 打开图片
使用pillow模块Image函数open()方法可以打开
指定路径的图片
# 从PIL模块中导入Image类
from PIL import Image
# 使用Image类的open()方法打开图片,赋值给变量img
img = Image.open("/Users/yequ/team.png")
2.3 展示图片
使用Image类的show()方法,展示图片
# 从PIL模块中导入Image类
from PIL import Image
# 使用Image类的open()方法打开路径为D:\学习资料\Python\test\test01.jpg的图片,赋值给变量img
img = Image.open(r"D:\学习资料\Python\test\test01.jpg")
# 使用Image类的show()方法,展示图片
img.show()
图片展示如下图:
2.4 加载字体
水印就是附着在图片上的一段文字。
因此,我们利用PIL模块给图片添加水印,主要解决下面两个问题:
处理文字的字体样式,就需要使用pillow
模块中的ImageFont
类
通过ImageFont的truetype方法读取了字体。
# 从PIL模块中导入Image类
from PIL import ImageFont
# 使用Image类的open()方法打开路径为D:\学习资料\Python\test\test01.jpg的图片,赋值给变量img
img = Image.open(r"D:\学习资料\Python\test\test01.jpg")
# 使用Image类的show()方法,展示图片
# img.show()
# 使用ImageFont类的方法truetype读取字体,赋值给变量font
font = ImageFont.truetype(r"C:\Windows\Fonts\simkai.ttf", size=100)
2.5 绘制文字
当我们想要将文字附着在图片上时,还需要用到PIL模块中的类ImageDraw
。
ImageDraw类提供了一系列的绘图方法,而我们只需要用到在图片上绘制文字的功能。
# 从PIL模块中导入ImageDraw类
from PIL import ImageDraw
# 将图片img创建为临时画布,赋值给变量draw
draw = ImageDraw.Draw(img)
# 在临时画布draw上,绘制文字信息
draw.text(xy=(360,420),text="@防盗水印",fill="white",font=font)
2.6 保存图片
通过以上的代码,我们成功制作了一张包含水印的图片,并将其展示了出来。
当然,如果我们想要把制作好的图片保存在电脑的指定位置,就还需要用到save()
方法。
# 将处理后的img保存到路径D:\学习资料\Python\test\test02.jpg
img.save(r"D:\学习资料\Python\test\test02.jpg")
2.7 合并代码
# 从PIL模块中导入Image,ImageFont,ImageDraw类,多个类导入,类中间用逗号
from PIL import Image,ImageFont,ImageDraw
# 使用Image类的open()方法打开路径为D:\学习资料\Python\test\test01.jpg的图片,赋值给变量img
img = Image.open(r"D:\学习资料\Python\test\test01.jpg")
# 使用ImageFont类的方法truetype读取字体,赋值给变量font
font = ImageFont.truetype(r"C:\Windows\Fonts\simkai.ttf", size=100)
# 将图片img创建为临时画布,赋值给变量draw
draw = ImageDraw.Draw(img)
# 在临时画布draw上,绘制文字信息
draw.text(xy=(200,200),text="@防盗水印",fill="white",font=font)
# 将处理后的img保存到路径D:\学习资料\Python\test\test02.jpg
img.save(r"D:\学习资料\Python\test\test02.jpg")
# 使用Image类的show()方法,展示图片
# img.show()
执行结果如下
三、总结
Pillow(Python Imaging Library,PIL)是一个Python图像处理库,它提供了广泛的功能,使您能够处理图像文件、进行图像编辑、生成图像等。以下是Pillow模块的一些主要功能:
-
打开和保存图像:Pillow支持打开和保存多种图像格式,如JPEG、PNG、BMP、GIF等。您可以使用
Image.open()
方法打开图像文件,然后使用Image.save()
方法保存图像。 -
图像处理:Pillow提供了许多图像处理功能,如调整大小、旋转、裁剪、滤镜应用、颜色调整等。您可以对图像进行各种变换和处理操作。
-
图像绘制:Pillow允许您在图像上绘制各种形状、文本和图形。您可以使用
ImageDraw
模块来绘制线条、矩形、圆形以及在图像上添加文本。 -
图像增强:Pillow提供了一些图像增强的功能,如锐化、模糊、亮度调整、对比度调整等,帮助您改善图像质量或实现特定效果。
-
颜色操作:Pillow支持对图像的颜色进行操作,包括颜色通道的分离、合并,以及颜色空间的转换。
-
图像合成:Pillow允许您将多个图像合成为一个新的图像,或者将图像叠加合成,实现复杂的图像合成效果。
-
文本处理:除了绘制文本,Pillow还提供了对文本进行布局、样式设置等功能,帮助您在图像上添加自定义文本。
-
图像信息:Pillow可以提取图像的各种信息,如尺寸、格式、元数据等,帮助您了解和操作图像文件。
Pillow是一个功能强大且易于使用的图像处理库,适用于各种图像处理需求,从简单的图像操作到复杂的图像处理和合成。如果您有特定的图像处理需求或者想要实现特定的图像效果,Pillow通常是一个很好的选择。