如何用Python批量处理图片 - 2026-04-09 08:00:02

 如何用Python批量处理图片 - 2026-04-09 08:00:02

# 用Python批量处理图片:让效率与创意齐飞 在数字时代,图片处理已成为许多工作与爱好中不可或缺的一环。无论是整理旅行照片、优化电商产品图,还是为设计项目准备素材,手动一张张处理既耗时又容易出错。幸运的是,借助Python的强大生态,我们可以轻松实现图片的批量自动化处理,将重复劳动交给代码,把宝贵时间留给创意。 ## 一、准备工作:搭建你的图片处理工坊 要开始批量处理图片,首先需要安装Python环境(推荐3.6以上版本)和核心图像库Pillow。Pillow是Python Imaging Library(PIL)的友好分支,功能强大且易于使用。 打开终端或命令提示符,执行以下命令安装: ```bash pip install Pillow ``` 同时,建议将待处理的图片统一放入一个文件夹,并在代码中指定输出文件夹,避免覆盖原图。 ## 二、四大常用批量处理场景实战 ### 1. 尺寸统一:快速生成缩略图 电商平台或内容网站常要求图片尺寸一致。以下代码可将指定文件夹内所有图片调整为800x600像素: ```python from PIL import Image import os def resize_images(input_folder, output_folder, size=(800, 600)): if not os.path.exists(output_folder): os.makedirs(output_folder) for filename in os.listdir(input_folder): if filename.lower().endswith(('.png', '.jpg', '.jpeg')): img_path = os.path.join(input_folder, filename) img = Image.open(img_path) img_resized = img.resize(size, Image.Resampling.LANCZOS) output_path = os.path.join(output_folder, filename) img_resized.save(output_path) print(f"已处理: {filename}") # 调用示例 resize_images("原始图片", "统一尺寸") ``` ### 2. 格式转换:一键切换图片格式 不同场景需要不同格式的图片(如JPG用于网页,PNG保留透明背景)。这段代码可将文件夹内图片统一转换为JPG格式: ```python def convert_format(input_folder, output_folder, new_format="JPEG"): if not os.path.exists(output_folder): os.makedirs(output_folder) for filename in os.listdir(input_folder): if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp')): img_path = os.path.join(input_folder, filename) img = Image.open(img_path) # 生成新文件名(保留原名称,仅改扩展名) new_filename = os.path.splitext(filename)[0] + f".{new_format.lower()}" output_path = os.path.join(output_folder, new_filename) # 转换并保存 img.convert("RGB").save(output_path, new_format) print(f"已转换: {filename} -> {new_filename}") ``` ### 3. 智能优化:自动旋转与添加水印 手机拍摄的照片有时方向不正确,批量校正能极大提升浏览体验。结合水印添加,还能保护版权: ```python def auto_rotate_and_watermark(input_folder, output_folder, watermark_text="©我的作品"): if not os.path.exists(output_folder): os.makedirs(output_folder) for filename in os.listdir(input_folder): if filename.lower().endswith(('.png', '.jpg', '.jpeg')): img_path = os.path.join(input_folder, filename) img = Image.open(img_path) # 自动旋转(根据EXIF信息) try: exif = img._getexif() if exif: orientation = exif.get(0x0112) if orientation == 3: img = img.rotate(180, expand=True) elif orientation == 6: img = img.rotate(270, expand=True) elif orientation == 8: img = img.rotate(90, expand=True) except: pass # 添加简单文字水印 from PIL import ImageDraw, ImageFont draw = ImageDraw.Draw(img) # 可使用自定义字体,此处使用默认字体 draw.text((10, 10), watermark_text, fill=(255, 255, 255, 128)) output_path = os.path.join(output_folder, filename) img.save(output_path) print(f"已优化: {filename}") ``` ### 4. 批量重命名:有序整理海量图片 系统化的命名让图片管理更高效: ```python def batch_rename(input_folder, prefix="photo_", start_num=1): counter = start_num for filename in os.listdir(input_folder): if filename.lower().endswith(('.png', '.jpg', '.jpeg')): ext = os.path.splitext(filename)[1] new_name = f"{prefix}{counter:03d}{ext}" old_path = os.path.join(input_folder, filename) new_path = os.path.join(input_folder, new_name) os.rename(old_path, new_path) print(f"重命名: {filename} -> {new_name}") counter += 1 ``` ## 三、进阶技巧:组合使用与定时任务 真正的效率提升来自于将这些功能组合。你可以创建一个主函数,依次调用上述功能,一次性完成“重命名→旋转→调整尺寸→添加水印→转换格式”的全流程。 更高级的应用是结合任务计划(如Windows的任务计划程序或Linux的cron),让Python脚本定时自动处理特定文件夹中的新图片,实现完全自动化的图片工作流。 ## 四、安全与创意并重 批量处理时,请务必: 1. 始终保留原始文件备份 2. 先在小样本上测试代码效果 3. 注意版权,仅处理你有权修改的图片 Python批量处理图片的魅力在于,它将我们从重复劳动中解放,让我们有更多时间专注于摄影的构图、设计的灵感或内容的创作。技术本应服务于人,而非束缚于人。当你掌握这些工具后,不妨发挥创意,定制属于自己的图片处理流程,让科技真正为你的生活与工作增添色彩。 从今天开始,告别机械点击,用几行代码开启高效优雅的图片处理之旅吧!

本文链接:https://www.j520m.site/?id=68

--EOF--

Comments

您是本站第409620名访客 今日有1篇新文章/评论

AI 助手
在线
你好!有什么可以帮助你的吗?