本文主要介绍如何使用python的PIL库给图片增加水印


文章目录

  • 背景说明
  • 工具准备
  • 处理步骤
  • 源代码
  • 处理效果展示



背景说明

  • 当我们想给一些图片添加水印的时候,尤其是图片数量较多的时候,就可以使用python进行自动化处理。
  • 包括但不限于在自媒体上发布自己的各种画稿、摄影作品、宣传作品等等。

工具准备

  • 使用如下pip命令安装所需要的python第三方库PIL:
    python3 -m pip install --upgrade Pillow
  • 到谷歌字体下载我们希望使用的水印字体到本地
  • 本案例使用Explora字体,字体文件放在E:/目录下
  • 准备一张要添加水印的图片,本案例使用以下图片,图片同样放在E:/目录下

python图片去水印 python加水印_python

处理步骤

通过python给图片增加水印的步骤如下:

  • 打开我们所需要添加水印的图片
  • 在图片上增加一层蒙版(或者说画布好理解一些?)
  • 在画布上增加我们想要添加的水印内容,包括但不限于
  • 文本
  • 颜色
  • 字体
  • 透明度
  • 保存图片

源代码

from PIL import Image, ImageDraw, ImageFont

"""
对应步骤一: 打开图片
由于需要设置透明度, 所以需要图片需要从默认的RGB模式转换成RGBA模式
"""
image_to_process = Image.open('E:/brooch.png').convert("RGBA")


"""
对应步骤二: 在图片上创建一个画布
后续的添加水印就是在带有画布的图片上进行
需要注意的是, 这相当于在图片上贴了了一层画布, 我们的内容是写在画布上, 然后内容会"渗"到图片上
所以我们最终要保存的是图片, 而不是画布
"""
image_could_be_drawed = ImageDraw.Draw(image_to_process)


"""进行步骤三之前,准备好要添加的水印内容"""
"""文本"""
text = "A K I R A"
"""字体, 加载之前下载好的字体, 并设置字体大小为128"""
font = ImageFont.truetype("E:/Explora-Regular.ttf", 128)
"""
水印内容放在图片中的哪个位置
这里通过image_to_process.size获取图片大小, 这里是(1024, 1024)
然后除以2, 使得水印内容从正中间开始
由于是从正中间开始写水印文本, 所以水印位置是中间偏右
"""
location = tuple(location // 2 for location in image_to_process.size)
"""字体颜色, RGBA"""
fill_color_RGBA = (254, 223, 225, 179)

"""对应步骤三: 将水印内容怼到图片上"""
image_could_be_drawed.text(location, text, font=font, fill=fill_color_RGBA)

"""让图片显示出来, 看看效果"""
image_to_process.show()

"""对应步骤四: 保存图片到本地"""
image_to_process.save('E:/image_withmark.png')

以上就是给图片增加水印的处理,需要批量处理的时候,如下循环操作即可:

import os

all_images = os.listdir("E:/images/")
for image in all_images:
	"""执行上述代码的操作即可"""

处理效果展示

本案例中处理完的图片效果如下:

python图片去水印 python加水印_开发语言_02