Python批量图片处理:高效修图的编程方案240


大家好,我是你们的技术博主,今天要给大家带来一个非常实用且高效的技能——使用Python进行批量图片处理。在日常工作或学习中,我们经常会遇到需要对大量图片进行相同操作的情况,例如批量调整图片大小、批量添加水印、批量转换图片格式等等。手动操作不仅费时费力,还容易出错。而Python强大的图像处理库,例如Pillow(PIL)、OpenCV等,可以轻松解决这些问题,让我们解放双手,提高效率。

本教程将以Pillow库为例,讲解如何用Python编写程序实现批量图片修图。Pillow是一个功能强大的Python图像处理库,易于学习和使用,适合初学者入门。我们将涵盖以下几个常见的批量图片处理任务:

一、准备工作:安装Pillow库

首先,你需要在你的电脑上安装Pillow库。可以使用pip命令轻松完成安装:pip install Pillow

安装完成后,你可以通过以下代码测试是否安装成功:from PIL import Image
print(Image.__version__)

如果成功安装,将会打印出Pillow库的版本号。

二、批量调整图片大小

这是一个非常常见的需求,例如将大量图片调整为统一的尺寸用于网站显示或社交媒体发布。以下代码实现将指定目录下所有图片调整为640x480大小:from PIL import Image
import os
def resize_images(input_dir, output_dir, width, height):
if not (output_dir):
(output_dir)
for filename in (input_dir):
if (('.jpg', '.jpeg', '.png')):
filepath = (input_dir, filename)
try:
img = (filepath)
img = ((width, height))
output_path = (output_dir, filename)
(output_path)
print(f"Resized {filename} to {width}x{height}")
except IOError as e:
print(f"Error processing {filename}: {e}")
input_directory = "input_images" # 输入图片目录
output_directory = "output_images" # 输出图片目录
resize_images(input_directory, output_directory, 640, 480)

这段代码首先检查输出目录是否存在,如果不存在则创建。然后遍历输入目录下的所有文件,判断文件是否为图片文件(jpg, jpeg, png),如果是则打开图片,调整大小,并保存到输出目录。错误处理机制可以捕获打开图片过程中可能出现的IOError异常。

三、批量添加水印

为图片添加水印可以有效保护版权。以下代码实现将一个水印图片添加到指定目录下所有图片的左下角:from PIL import Image
import os
def add_watermark(input_dir, output_dir, watermark_path):
if not (output_dir):
(output_dir)
watermark = (watermark_path)
for filename in (input_dir):
if (('.jpg', '.jpeg', '.png')):
filepath = (input_dir, filename)
try:
img = (filepath)
(watermark, (0, - ), watermark) # 左下角添加水印
output_path = (output_dir, filename)
(output_path)
print(f"Added watermark to {filename}")
except IOError as e:
print(f"Error processing {filename}: {e}")
input_directory = "input_images"
output_directory = "output_images_watermarked"
watermark_path = "" # 水印图片路径
add_watermark(input_directory, output_directory, watermark_path)


这段代码先打开水印图片,然后遍历所有图片,将水印图片粘贴到目标图片的左下角。 `(watermark, (0, - ), watermark)` 这行代码的第三个参数 `watermark` 用于控制透明度,确保水印图片的透明部分不会覆盖原图。

四、批量转换图片格式

有时候我们需要将图片批量转换为另一种格式,例如将所有jpg图片转换为png格式。以下代码实现将指定目录下所有jpg图片转换为png图片:from PIL import Image
import os
def convert_images(input_dir, output_dir, extension):
if not (output_dir):
(output_dir)
for filename in (input_dir):
if (('.jpg', '.jpeg')):
filepath = (input_dir, filename)
try:
img = (filepath)
name, ext = (filename)
output_path = (output_dir, name + extension)
(output_path)
print(f"Converted {filename} to {extension}")
except IOError as e:
print(f"Error processing {filename}: {e}")
input_directory = "input_images"
output_directory = "output_images_png"
convert_images(input_directory, output_directory, ".png")

这段代码类似于前面两个例子,只是在保存图片时指定了新的扩展名。 `(filename)` 用于分离文件名和扩展名,方便添加新的扩展名。

五、总结

本教程讲解了如何使用Python和Pillow库进行批量图片处理,涵盖了调整大小、添加水印和转换格式三个常见任务。 你可以根据自己的需求修改代码,例如调整水印位置、添加更多图片格式支持、或者加入其他的图片处理操作。 记住,创建 `input_images` 目录并放入你需要处理的图片,运行代码前确保已经安装 Pillow 库。 希望本教程能够帮助你提高图片处理效率! 未来我会继续分享更多Python编程技巧,敬请关注!

2025-04-29


上一篇:人像精修:从小白到高手的人脸修正修图教程

下一篇:车拍修图教程:从小白到大神,轻松掌握汽车摄影后期技巧