在现代日常工作中,处理大量图片是一个常见且繁琐的任务。无论是为电商平台批量调整商品图片尺寸,还是为公众号文章加上统一的水印,这些工作如果手动完成,不仅费时费力,还容易出错。幸运的是,Python的Pillow库可以帮助我们轻松实现这些图片处理的自动化。本文将介绍如何使用Pillow库来批量调整图片大小并添加水印。
Pillow库的强大功能
Pillow是Python中一个功能强大的图像处理库,它提供了丰富的功能,如调整大小、裁剪、应用滤镜等。通过Pillow,我们可以编写脚本来自动处理大量图片,大大提高工作效率。
解决的问题
假设你有一个包含大量图片的目录,现在你需要将这些图片统一调整到指定大小,并添加水印。如果手动操作,不仅耗时,而且容易出错。而通过Python的Pillow库,可以编写脚本来自动完成这些任务,极大地提高了工作效率。
如何使用Pillow处理图像
下面是一个简单的例子,展示了如何使用Pillow库来调整图片尺寸并添加水印:
from PIL import Image, ImageDraw, ImageFont
import os
# 图片所在目录
image_dir = '/path/to/image/directory'
# 调整后图片的尺寸
new_size = (800, 600)
# 水印文字和字体
watermark_text = 'Your Watermark'
font = ImageFont.truetype('arial.ttf', 36)
# 遍历目录中的图片
for filename in os.listdir(image_dir):
if filename.endswith('.jpg') or filename.endswith('.png'):
# 打开图片
image_path = os.path.join(image_dir, filename)
image = Image.open(image_path)
# 调整图片尺寸
resized_image = image.resize(new_size)
# 堆代码 duidaima.com
# 添加水印
draw = ImageDraw.Draw(resized_image)
text_width, text_height = draw.textsize(watermark_text, font)
x = resized_image.width - text_width - 10
y = resized_image.height - text_height - 10
draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))
# 保存修改后的图片
new_filename = f"resized_{filename}"
new_image_path = os.path.join(image_dir, new_filename)
resized_image.save(new_image_path)
这段代码首先遍历指定目录中的所有图片文件。对于每张图片,首先打开并使用resize()方法调整图片尺寸。接着,使用ImageDraw类在图片的右下角添加水印。最后,将修改后的图片保存为新的文件名。
代码详解
导入库和设置参数:
我们首先导入Pillow库中的Image, ImageDraw和ImageFont模块,并设置图片目录、目标尺寸和水印相关参数。
遍历图片目录:
使用os.listdir遍历指定目录下的所有图片文件。我们只处理.jpg和.png格式的图片。
处理每张图片:
对每张图片,我们首先用Image.open打开图片,然后用resize方法将其调整为指定大小。接着,使用ImageDraw.Draw在图片上添加水印。水印位置设在图片的右下角,并调整文字大小和颜色使其清晰可见。
保存修改后的图片:
最后,将处理过的图片保存到指定目录,并在文件名上添加前缀以区分原图。
注意事项
1.字体文件路径:确保arial.ttf字体文件在代码指定路径中,或者替换为系统中存在的字体文件。
2.文件格式:根据实际需求,调整支持的文件格式,如.jpg、.png等。
3.水印位置和样式:根据实际需求调整水印的位置和样式,以确保水印在不同图片上的显示效果一致。
4.批量处理效率:在处理大量图片时,可以考虑并行处理,以进一步提高效率。
通过掌握这些技巧,我们可以更高效地处理图片任务,确保图片的质量和一致性。如果你也有类似的需求,不妨试试这个强大的工具吧!
让我们一起用Python提升工作效率,做一个聪明的程序员!