python批量添加水印
时间: 2023-09-27 20:06:00 浏览: 286
python实现图片处理器.rar
### 回答1:
你可以使用Pillow库来批量添加水印,具体步骤如下:
1. 安装Pillow库:在命令行中执行 `pip install Pillow` 进行安装。
2. 编写代码:可以参考下面的示例代码,进行修改和适应自己的需求。
```python
from PIL import Image, ImageDraw, ImageFont
import os
# 要添加水印的文件夹路径
folder_path = 'path/to/folder'
# 水印文字和字体大小
watermark_text = 'watermark'
font_size = 30
# 水印颜色和透明度
watermark_color = (255, 255, 255, 128)
# 遍历文件夹中的所有图片文件
for filename in os.listdir(folder_path):
if filename.endswith('.jpg') or filename.endswith('.png'):
# 打开图片并添加水印
image_path = os.path.join(folder_path, filename)
image = Image.open(image_path).convert('RGBA')
watermark = Image.new('RGBA', image.size, (0, 0, 0, 0))
draw = ImageDraw.Draw(watermark)
font = ImageFont.truetype('arial.ttf', font_size)
text_width, text_height = draw.textsize(watermark_text, font)
x = image.width - text_width - 10
y = image.height - text_height - 10
draw.text((x, y), watermark_text, font=font, fill=watermark_color)
image_with_watermark = Image.alpha_composite(image, watermark)
# 保存图片
image_with_watermark.save(image_path)
```
3. 运行代码:在命令行中执行 `python watermark.py` 运行代码,并等待程序执行完成。
注意:在运行代码前,需要将代码中的 `folder_path` 修改为要添加水印的文件夹路径,将 `watermark_text` 修改为要添加的水印文字,将 `font_size` 修改为水印的字体大小,将 `watermark_color` 修改为水印的颜色和透明度。另外,代码中使用的是默认的字体 `arial.ttf`,如果你想要使用其他字体,需要将字体文件放到代码所在的目录下,并将字体文件名修改为相应的名称。
### 回答2:
在Python中批量添加水印可以通过使用PIL(Python Imaging Library)库来实现。以下是一个简单的示例代码:
```python
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import os
def add_watermark(input_dir, output_dir, watermark_text):
# 遍历输入目录中的所有图片文件
for file_name in os.listdir(input_dir):
if file_name.endswith('.jpg') or file_name.endswith('.png'):
# 打开图片文件
input_path = os.path.join(input_dir, file_name)
image = Image.open(input_path).convert('RGBA')
# 创建水印文本
watermark = Image.new('RGBA', image.size, (255, 255, 255, 0))
draw = ImageDraw.Draw(watermark)
font = ImageFont.truetype('arial.ttf', 36)
text_width, text_height = draw.textsize(watermark_text, font=font)
text_x = image.width - text_width - 10
text_y = image.height - text_height - 10
draw.text((text_x, text_y), watermark_text, fill=(128, 128, 128, 128), font=font)
# 将水印叠加到原始图片中
watermarked = Image.alpha_composite(image, watermark)
# 保存水印图片
output_path = os.path.join(output_dir, file_name)
watermarked.save(output_path)
```
使用以上代码,你可以将水印文本添加到指定目录中的所有图片上,生成带有水印的图片并保存到输出目录中。你只需要指定输入目录、输出目录以及要添加的水印文本即可。注意,你需要提前安装PIL库,并将所需的字体文件(例如arial.ttf)放在与你的Python脚本相同的目录下。
### 回答3:
使用Python批量添加水印可以借助第三方库进行操作。下面我以使用Pillow库为例来解释:
1. 首先,确保你已经安装了Pillow库。可以使用以下命令安装:pip install pillow。
2. 导入Pillow库和其他需要的库:from PIL import Image, ImageDraw, ImageFont, ImageEnhance
3. 批量添加水印的主要步骤如下:
- 遍历需要加水印的图片,可以使用os库的相关函数来获取图片文件列表。
- 加载水印图片和背景图片:watermark_img = Image.open('水印图片路径'),background_img = Image.open('背景图片路径')。
- 调整水印的大小:可以使用watermark_img.thumbnail()函数来调整水印图片的大小。
- 在背景图片上添加水印:使用ImageDraw库的text()函数,在background_img对象上进行绘制。
- 保存加了水印的图片:使用background_img对象的save()函数将图片保存到指定目录下。
4. 示例代码如下:
```python
from PIL import Image, ImageDraw, ImageFont
import os
# 加载水印图片和背景图片
watermark_img = Image.open('水印图片路径')
# 调整水印的大小
watermark_img.thumbnail((100, 100)) # 自定义水印大小
watermark_width, watermark_height = watermark_img.size
# 获取所有需加水印的图片文件列表
image_dir = '图片文件夹路径'
image_files = [file for file in os.listdir(image_dir) if file.endswith(('.jpg', '.png'))]
# 设置水印文字的样式
watermark_text = "水印文字"
watermark_font = ImageFont.truetype('字体文件路径', 30) # 自定义字体和大小
# 遍历图片列表,添加水印
for image_file in image_files:
image_path = os.path.join(image_dir, image_file)
background_img = Image.open(image_path)
# 在背景图片上添加水印
draw = ImageDraw.Draw(background_img)
draw.text((background_img.size[0] - watermark_width, background_img.size[1] - watermark_height),
watermark_text, fill=(255, 255, 255), font=watermark_font)
# 保存加了水印的图片
output_dir = '保存加水印图片的文件夹路径'
output_path = os.path.join(output_dir, image_file)
background_img.save(output_path)
background_img.close()
```
通过以上步骤和示例代码,你可以使用Python批量添加水印到多张图片中。请确保提供正确的水印图片路径、背景图片路径、字体文件路径和保存加水印图片的文件夹路径。
阅读全文