首页 > 编程知识 正文

使用Python PIL库制作水印

时间:2023-11-20 13:02:26 阅读:296178 作者:VWSR

在本文中,我们将通过使用Python PIL库来制作水印。Python PIL库是一个强大的图像处理库,可以帮助我们对图片进行各种处理操作,包括添加水印。

一、安装PIL库

首先,我们需要安装PIL库。在命令行中执行以下命令:

pip install pillow

二、添加文字水印

我们可以使用Python PIL库来添加文字水印。下面是一个示例代码:

from PIL import Image, ImageDraw, ImageFont

def add_text_watermark(image_path, text, output_path):
    image = Image.open(image_path)
    draw = ImageDraw.Draw(image)
    font = ImageFont.truetype("arial.ttf", 36)  # 使用指定字体和字号
    draw.text((10, 10), text, fill=(255, 255, 255, 128), font=font)  # 设置文字位置、颜色、透明度
    image.save(output_path)

# 使用示例
add_text_watermark("input.jpg", "Watermark", "output.jpg")

在上面的代码中,我们首先打开指定路径的图片,然后创建一个ImageDraw对象,用于在图片上绘制文字。我们选择了一个字体和字号,然后使用draw.text()方法在指定位置绘制文字,同时设置了文字的颜色和透明度。最后保存修改后的图片。

三、添加图片水印

除了文字水印,我们还可以添加图片水印。下面是一个示例代码:

from PIL import Image

def add_image_watermark(image_path, watermark_path, output_path):
    image = Image.open(image_path)
    watermark = Image.open(watermark_path)
    image.paste(watermark, (0, 0), watermark)  # 使用paste()方法将水印图片粘贴到原图上
    image.save(output_path)

# 使用示例
add_image_watermark("input.jpg", "watermark.png", "output.jpg")

在上面的代码中,我们首先打开原图和水印图,然后使用paste()方法将水印图粘贴到原图上。我们可以指定粘贴的位置,这里我们选择了左上角作为水印的位置。最后保存修改后的图片。

四、自定义水印样式

除了位置外,我们还可以进一步自定义水印的样式。比如,可以调整文字的大小、颜色、透明度,或者调整图片水印的大小、透明度等。这些都可以通过调整代码中的参数来实现。

五、批量添加水印

如果我们需要批量添加水印,可以使用循环来处理多张图片。下面是一个示例代码:

import os

def add_watermark_to_folder(input_folder, output_folder, text):
    for filename in os.listdir(input_folder):
        if filename.endswith(".jpg"):  # 只处理.jpg文件
            input_path = os.path.join(input_folder, filename)
            output_path = os.path.join(output_folder, filename)
            add_text_watermark(input_path, text, output_path)

# 使用示例
add_watermark_to_folder("input_folder", "output_folder", "Watermark")

在上面的代码中,我们使用os.listdir()方法遍历输入文件夹中的所有文件。然后针对每个以.jpg结尾的文件,分别调用add_text_watermark()方法来添加水印,并保存到输出文件夹中。

六、总结

通过使用Python PIL库,我们可以轻松地给图片添加文字水印或图片水印。我们可以自定义水印的样式,也可以批量处理多张图片。这使得我们能够方便地保护自己的图片版权,或者在图片中添加个性化的标识。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。