🖼️ 告别付费软件!用Python一键批量压缩图片,小白也能轻松上手
最近在做教程时发现手机拍出来的图片巨大无比(18MB),导致网站加载几分钟都看不到一张图!还浪费对象储存的空间(这可是要钱的!!)网上的找了很多压缩工具要么收费,要么有水印,要么限制数量,还有隐私安全问题。
今天分享一个完全免费、无水印、无限制的图片批量压缩方案——只需要一个小脚本,就能让你的图片"瘦身"到指定大小,而且画质损失极小!
即使你从未接触过编程,跟着这篇教程一步步来,10分钟就能搞定。
📋 这个工具能做什么?
先来看看这个小脚本的"超能力":
| 功能 | 说明 |
|---|---|
| ✅ 批量处理 | 一次性处理整个文件夹的图片 |
| ✅ 智能压缩 | 自动调整质量,尽可能保留画质 |
| ✅ 体积控制 | 可以指定目标大小(默认500KB) |
| ✅ 格式兼容 | 支持 JPG、PNG、WebP 等常见格式 |
| ✅ 自动跳过 | 已经很小的图片不会重复压缩 |
| ✅ 原图保留 | 压缩后的图片单独保存,不覆盖原图 |
实测效果:一张 8MB 的手机照片,压缩到 500KB 以内,肉眼几乎看不出区别!比如我的上一篇推文中,都是500K以下,但并没有很糊。
🛠️ 准备工作(只需做一次)
Step 1:安装 Python 环境
首先需要安装python,假如你已经安装了,就跳过吧!
不过真心建议大家入门一下python,AI时代了,DeepSeek一下写个小脚本,最少多摸鱼半小时!
Windows 用户:
- 打开浏览器,访问 Python 官网:https://www.python.org/downloads/
- 点击黄色的 Download Python 3.x.x 按钮
- 运行下载的安装包
- ⚠️ 重要:安装时一定要勾选 "Add Python to PATH"(如下图)
- 点击 "Install Now" 等待安装完成
Mac 用户:
Mac 系统自带 Python,但为了避免后续安装库时遇到权限问题,建议用 Homebrew 安装独立的 Python。
打开"终端",输入:
brew install python
💡 没有 Homebrew?先访问 https://brew.sh 安装,或者直接运行:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Step 2:安装图片处理库
Python 本身不能处理图片,需要安装一个叫 Pillow 的库(可以理解为"插件")。
打开命令行工具:
- Windows:按
Win + R,输入cmd,回车 - Mac:打开"终端"应用(在"应用程序"-"实用工具"里)
Windows 用户:
pip install Pillow
Mac 用户(推荐使用 Homebrew):
macOS 系统对 Python 环境有保护机制,最简单的方法是用 Homebrew 安装:
# 如果还没装 Homebrew,先安装它(复制整行运行)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Python 和必要的库
brew install python python-tk
pip3 install Pillow
看到类似 Successfully installed Pillow-xxx 的提示就说明安装成功了!
💡 为什么 Mac 要用 Homebrew? macOS 自带的 Python 被系统保护,不能随意安装库。Homebrew 安装的 Python 是独立的,可以自由使用。
python-tk是用来显示文件选择窗口的
Step 3:获取压缩脚本
这就是今天的主角——一个不到100行的 Python 脚本,却能实现专业级的图片压缩效果。
获取方式:关注公众号 「新青年talks」,回复 「图片压缩」 即可获取完整代码。
直接下载即可!
📁 建议把这个文件放在一个固定的位置,比如
D:\Tools\imgprocess.py
🚀 开始使用(超简单!)
准备工作做完后,以后每次使用只需要两步:
方法一:双击运行(推荐新手)
- 找到你保存的
imgprocess.py文件 - 双击打开它(假如不行,又不愿折腾,直接看下一个方法)
- 会弹出一个文件夹选择窗口
- 选择你要压缩的图片所在的文件夹
- 等待处理完成,压缩后的图片会自动保存在
optimized_results子文件夹中
就是这么简单!处理完成后,文件夹会自动打开,你可以直接查看压缩后的图片。
方法二:命令行运行(Mac 推荐)
如果双击没反应(可能是系统设置问题),或者 Mac 上遇到 tkinter 问题,可以用命令行直接指定文件夹:
- 打开命令行工具(cmd 或终端)
- 输入
python(注意后面有个空格) - 把
imgprocess.py文件拖拽到命令行窗口 - 继续输入一个空格,然后把图片文件夹也拖拽进去
- 按回车运行
示例(Mac):
python3 /Users/你的用户名/Desktop/imgprocess.py /Users/你的用户名/Pictures/旅行照片
示例(Windows):
python D:\Tools\imgprocess.py D:\Photos\旅行照片
💡 小技巧:直接拖拽文件和文件夹到终端,系统会自动填入完整路径,不用手打
📊 运行效果展示
运行后,你会看到类似这样的输出:
正在处理: D:\Photos\旅行照片
输出目录: D:\Photos\旅行照片\optimized_results
------------------------------
[IMG_001.png] Compressed: 8532.4KB -> 487.2KB
[IMG_002.jpg] Compressed: 5621.8KB -> 492.1KB
[IMG_003.png] Skipped (Small enough): 312.5KB
[IMG_004.webp] Compressed: 12045.6KB -> 498.7KB
------------------------------
处理完成!共处理 4 张图片。
可以看到:
- 8MB 的图片被压缩到了 487KB
- 本来就小于 500KB 的图片会自动跳过
- 所有格式都能处理
🔧 进阶技巧:自定义压缩大小
默认压缩到 500KB 以内,如果你想改成其他大小怎么办?
打开 imgprocess.py 文件,找到这一行:
def smart_compress(input_path, output_path, target_size_kb=500):
把 500 改成你想要的大小(单位是 KB)就行了。比如:
- 想压缩到 200KB:改成
target_size_kb=200 - 想压缩到 1MB:改成
target_size_kb=1024
💡 这个脚本是怎么工作的?
好奇宝宝可能想知道,这短短几十行代码是怎么实现"智能压缩"的?
简单来说,它用了一个二分查找的策略:
- 先检查:如果图片本身就小于目标大小,直接跳过
- 调质量:从 90% 质量开始,逐步降低,直到文件大小达标
- 缩尺寸:如果质量降到很低还是太大,就按比例缩小图片尺寸
- 保底线:图片宽度不会缩到 400 像素以下,保证基本可用
这就是为什么压缩后的图片画质损失很小——它会优先保证画质,只在必要时才缩小尺寸。
🐍 这种"先尝试、再调整"的思路,在编程中非常常见。如果你对 Python 感兴趣,这个小脚本是个很好的学习起点!
❓ 常见问题
Q:双击 .py 文件没反应?
A:可能是 Python 没有正确关联 .py 文件。用方法二(命令行)运行即可。
Q:提示 "No module named PIL"?
A:说明 Pillow 没装好。Windows 用户重新运行 pip install Pillow,Mac 用户按照上面的 Homebrew 方法重新安装。
Q:Mac 上提示 "No module named '_tkinter'" 错误?
A:tkinter 是用来显示文件选择窗口的库。运行 brew install python-tk 安装即可。如果还是不行,可以用命令行方式运行(见下面的"方法二"),直接指定文件夹路径,不需要弹窗选择。
Q:Mac 上处理完没有自动打开文件夹?
A:这是正常的,脚本里的自动打开功能是 Windows 专用的。手动去 optimized_results 文件夹查看即可。
Q:压缩后的图片都变成 JPG 了?
A:是的,这是故意的。JPG 格式的压缩率最高,能在保证画质的同时获得最小的文件体积。
Q:能处理 GIF 动图吗?
A:目前不支持,GIF 动图的压缩逻辑比较特殊,后续可能会更新。
📝 写在最后
一个不到 100 行的 Python 脚本,就能替代那些收费的图片压缩软件,这就是编程的魅力所在。
Python 被称为"最适合新手的编程语言",语法简洁、功能强大,从数据分析到人工智能,从网站开发到自动化办公,几乎无所不能。
如果这篇文章让你对 Python 产生了一点点兴趣,不妨从这个小脚本开始,尝试理解每一行代码的含义。编程没有想象中那么难,而且真的很有趣!
📌 获取完整代码:关注公众号 「新青年talks」,回复 「图片压缩」
🔄 觉得有用? 转发给需要的朋友吧!
