🖼️ 告别付费软件!用Python一键批量压缩图片,小白也能轻松上手

最近在做教程时发现手机拍出来的图片巨大无比(18MB),导致网站加载几分钟都看不到一张图!还浪费对象储存的空间(这可是要钱的!!)网上的找了很多压缩工具要么收费,要么有水印,要么限制数量,还有隐私安全问题。

今天分享一个完全免费、无水印、无限制的图片批量压缩方案——只需要一个小脚本,就能让你的图片"瘦身"到指定大小,而且画质损失极小!

即使你从未接触过编程,跟着这篇教程一步步来,10分钟就能搞定。


📋 这个工具能做什么?

先来看看这个小脚本的"超能力":

功能说明
✅ 批量处理一次性处理整个文件夹的图片
✅ 智能压缩自动调整质量,尽可能保留画质
✅ 体积控制可以指定目标大小(默认500KB)
✅ 格式兼容支持 JPG、PNG、WebP 等常见格式
✅ 自动跳过已经很小的图片不会重复压缩
✅ 原图保留压缩后的图片单独保存,不覆盖原图

实测效果:一张 8MB 的手机照片,压缩到 500KB 以内,肉眼几乎看不出区别!比如我的上一篇推文中,都是500K以下,但并没有很糊。


🛠️ 准备工作(只需做一次)

Step 1:安装 Python 环境

首先需要安装python,假如你已经安装了,就跳过吧!

不过真心建议大家入门一下python,AI时代了,DeepSeek一下写个小脚本,最少多摸鱼半小时!

Windows 用户:

  1. 打开浏览器,访问 Python 官网:https://www.python.org/downloads/
  2. 点击黄色的 Download Python 3.x.x 按钮
  3. 运行下载的安装包
  4. ⚠️ 重要:安装时一定要勾选 "Add Python to PATH"(如下图)
  5. 点击 "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


🚀 开始使用(超简单!)

准备工作做完后,以后每次使用只需要两步:

方法一:双击运行(推荐新手)

  1. 找到你保存的 imgprocess.py 文件
  2. 双击打开它(假如不行,又不愿折腾,直接看下一个方法)
  3. 会弹出一个文件夹选择窗口
  4. 选择你要压缩的图片所在的文件夹
  5. 等待处理完成,压缩后的图片会自动保存在 optimized_results 子文件夹中

就是这么简单!处理完成后,文件夹会自动打开,你可以直接查看压缩后的图片。


方法二:命令行运行(Mac 推荐)

如果双击没反应(可能是系统设置问题),或者 Mac 上遇到 tkinter 问题,可以用命令行直接指定文件夹:

  1. 打开命令行工具(cmd 或终端)
  2. 输入 python (注意后面有个空格)
  3. 把 imgprocess.py 文件拖拽到命令行窗口
  4. 继续输入一个空格,然后把图片文件夹也拖拽进去
  5. 按回车运行

示例(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

💡 这个脚本是怎么工作的?

好奇宝宝可能想知道,这短短几十行代码是怎么实现"智能压缩"的?

简单来说,它用了一个二分查找的策略:

  1. 先检查:如果图片本身就小于目标大小,直接跳过
  2. 调质量:从 90% 质量开始,逐步降低,直到文件大小达标
  3. 缩尺寸:如果质量降到很低还是太大,就按比例缩小图片尺寸
  4. 保底线:图片宽度不会缩到 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」,回复 「图片压缩」

🔄 觉得有用? 转发给需要的朋友吧!

告别付费软件!用Python一键批量压缩图片 | 新青年talks