python批量添加水印
时间: 2023-08-21 17:13:25 浏览: 213
### 回答1:
你可以使用Python的Pillow库来批量添加水印。以下是一个示例代码,你需要将其中的水印图片和待处理的图片路径替换为你自己的。
```python
from PIL import Image, ImageDraw, ImageFont
import os
# 水印图片路径
watermark_path = "watermark.png"
# 待处理图片所在文件夹路径
input_dir = "input/"
# 处理后图片保存路径
output_dir = "output/"
# 水印透明度
opacity = 50
# 加载水印图片
watermark = Image.open(watermark_path).convert("RGBA")
# 获取水印图片大小
watermark_width, watermark_height = watermark.size
# 遍历待处理图片
for file_name in os.listdir(input_dir):
if file_name.endswith(".jpg") or file_name.endswith(".png"):
# 打开图片
input_image = Image.open(os.path.join(input_dir, file_name)).convert("RGBA")
# 创建空白画布,大小等于待处理图片
canvas = Image.new("RGBA", input_image.size, (0, 0, 0, 0))
# 将待处理图片粘贴到画布上
canvas.paste(input_image, (0, 0))
# 计算水印位置,居中显示
x = int((input_image.width - watermark_width) / 2)
y = int((input_image.height - watermark_height) / 2)
# 将水印图片粘贴到画布上
canvas.paste(watermark, (x, y), mask=watermark)
# 创建画笔
draw = ImageDraw.Draw(canvas)
# 设置字体
font = ImageFont.truetype("arial.ttf", 36)
# 在图片右下角添加文字水印
draw.text((input_image.width - 200, input_image.height - 50), "watermark by Python", font=font, fill=(255, 255, 255, opacity))
# 保存处理后的图片
canvas.save(os.path.join(output_dir, file_name))
```
这段代码将会遍历 `input/` 文件夹中的所有 `.jpg` 和 `.png` 图片,添加水印和文字水印,并将处理后的图片保存到 `output/` 文件夹中。你需要将其中的路径和文件名替换成你自己的。
### 回答2:
Python可以通过使用Pillow库进行图片处理来实现批量添加水印的功能。下面是一个简单的实现示例:
首先,我们需要安装Pillow库,可以使用命令`pip install pillow`进行安装。
然后,我们需要准备水印图片和待添加水印的图片文件夹。
接下来,使用以下代码实现批量添加水印的功能:
```python
from PIL import Image, ImageDraw, ImageFont
import os
# 水印文字
watermark_text = "Watermark"
# 水印文字颜色
watermark_color = "white"
# 水印文字大小
watermark_size = 50
# 输入文件夹路径
input_folder = "input_folder"
# 输出文件夹路径
output_folder = "output_folder"
# 遍历输入文件夹中的所有图片文件
for filename in os.listdir(input_folder):
# 检查文件是否为图片文件
if filename.endswith(".jpg") or filename.endswith(".png"):
# 打开图片文件
image = Image.open(os.path.join(input_folder, filename))
# 创建水印图层
watermark = Image.new("RGBA", image.size)
draw = ImageDraw.Draw(watermark)
# 设置水印文字样式
font = ImageFont.truetype("arial.ttf", watermark_size)
# 计算水印文字位置(居中)
text_width, text_height = draw.textsize(watermark_text, font=font)
x = (image.width - text_width) // 2
y = (image.height - text_height) // 2
# 添加水印文字
draw.text((x, y), watermark_text, fill=watermark_color, font=font)
# 合并原始图片和水印图层
watermarked_image = Image.alpha_composite(image.convert("RGBA"), watermark)
# 保存水印图片到输出文件夹
watermarked_image.save(os.path.join(output_folder, filename))
```
以上代码会将输入文件夹中的所有图片文件添加水印,并保存到输出文件夹中。通过调整参数,可以自定义水印文字的内容、颜色和大小等。
需要注意的是,为了正常运行代码,需要将实际的输入文件夹路径和输出文件夹路径替换为正确的路径。另外,需要提前准备好使用的水印图片和字体文件(本例中使用了系统默认的Arial字体)。
### 回答3:
Python批量添加水印可通过使用PIL库来实现。PIL(Python Imaging Library)是Python中用于图像处理的常用库。
首先,需要安装PIL库。可以使用以下命令在终端中安装PIL库:
```
pip install pillow
```
接下来,编写Python脚本来实现批量添加水印的功能。下面是一个简单的示例:
```python
from PIL import Image, ImageDraw, ImageFont
import os
def add_watermark(image_path, watermark_text, output_path):
# 打开原始图像文件
image = Image.open(image_path)
# 创建一个绘图对象
draw = ImageDraw.Draw(image)
# 设置水印文本的字体和大小
font = ImageFont.truetype("Arial.ttf", 24)
# 设置水印文本的颜色和透明度
text_color = (255, 255, 255, 128)
# 在图像上绘制水印
draw.text((10, 10), watermark_text, fill=text_color, font=font)
# 保存添加水印后的图像
image.save(output_path)
# 获取所有图像文件
image_folder = "images/"
image_files = os.listdir(image_folder)
# 遍历每个图像文件并添加水印
for file_name in image_files:
if file_name.endswith(".jpg") or file_name.endswith(".png"):
image_path = os.path.join(image_folder, file_name)
watermark_text = "Watermark"
output_path = os.path.join("output/", file_name)
add_watermark(image_path, watermark_text, output_path)
```
上述代码首先导入所需的库,然后定义一个函数`add_watermark`,该函数接收图片路径、水印文本和输出路径作为参数。在函数内部,打开图片并创建一个绘图对象。然后,设置水印文本的字体、颜色和透明度,并在图片上绘制水印。最后,保存添加水印后的图片。
在主程序中,首先获取存储所有图片的文件夹路径,并获取文件夹中的所有图片文件。然后,遍历每个图片文件,检查文件扩展名,如果是".jpg"或".png"文件,则调用`add_watermark`函数来添加水印,并保存到输出路径。
通过以上方法,可以使用Python来批量添加水印。
阅读全文