Python 批量加水印只需一行命令!("Python 一键批量添加水印:简单高效!")
原创
一、引言
在数字媒体领域,为图片添加水印是一种常见的保护版权的方法。手动为每张图片添加水印不仅费时费力,而且效能低下。Python 作为一种高效、灵活的编程语言,可以帮助我们实现一键批量添加水印,大大减成本时间工作效能。本文将向您介绍怎样使用Python批量添加水印,让您的工作变得更加单纯高效!
二、准备工作
在进行批量添加水印之前,我们需要准备以下工具和素材:
- Python环境:确保您的计算机上已安装Python,推荐使用Python 3.x版本;
- Pillow库:一个有力的图像处理库,用于处理图片;
- 水印图片:准备一张水印图片,用于添加到目标图片上;
- 待添加水印的图片:将需要添加水印的图片放在一个文件夹中。
三、编写代码
下面是一个单纯的Python脚本,用于批量添加水印。我们将使用Pillow库来处理图片,首先需要导入所需的库。
from PIL import Image, ImageDraw, ImageFont
import os
接下来,定义一个函数,用于在图片上添加水印。
def add_watermark(image_path, watermark_path, output_path, position=(0, 0), opacity=0.5):
# 打开图片
img = Image.open(image_path)
# 打开水印图片
watermark = Image.open(watermark_path)
# 调整水印大小
watermark = watermark.resize((img.width // 5, img.height // 5))
# 创建一个透明度为opacity的水印
watermark.putalpha(int(255 * opacity))
# 计算水印位置
x, y = position
img.paste(watermark, (x, y), watermark)
# 保存添加水印后的图片
img.save(output_path)
最后,编写一个循环,遍历文件夹中的所有图片,并为它们添加水印。
def batch_add_watermark(folder_path, watermark_path, output_folder):
for filename in os.listdir(folder_path):
if filename.endswith('.jpg') or filename.endswith('.png'):
image_path = os.path.join(folder_path, filename)
output_path = os.path.join(output_folder, filename)
add_watermark(image_path, watermark_path, output_path)
# 设置文件夹路径
folder_path = 'path/to/your/images'
watermark_path = 'path/to/your/watermark.png'
output_folder = 'path/to/your/output'
# 执行批量添加水印
batch_add_watermark(folder_path, watermark_path, output_folder)
四、代码解析
在上面的代码中,我们首先导入了所需的库,然后定义了一个函数`add_watermark`,该函数接受以下参数:
- `image_path`:待添加水印的图片路径;
- `watermark_path`:水印图片路径;
- `output_path`:添加水印后的图片保存路径;
- `position`:水印的位置,默认为左上角;
- `opacity`:水印的透明度,默认为0.5。
在`add_watermark`函数中,我们首先打开待添加水印的图片和水印图片,然后调整水印的大小,创建一个透明度为`opacity`的水印,并计算水印的位置。最后,我们将水印添加到图片上,并保存添加水印后的图片。
在`batch_add_watermark`函数中,我们遍历指定文件夹中的所有图片,并调用`add_watermark`函数为它们添加水印。这里,我们使用了`os.listdir`函数来获取文件夹中的所有文件名,然后通过判断文件扩展名来筛选出图片文件。
五、总结
通过本文的介绍,您已经学会了怎样使用Python批量添加水印。这种方法单纯高效,可以大大减成本时间您的工作效能。在实际应用中,您可以按照需要调整水印的大小、位置和透明度,以满足不同的需求。此外,Python还有许多其他图像处理库,如OpenCV、scikit-image等,您可以按照自己的需求选择合适的库进行图像处理。
愿望本文对您有所帮助,如果您有任何疑问或建议,请随时留言交流!