Python 批量修改图片尺寸
HDUZN

PIL(Python Imaging Library)是Python的第三方图像处理库,但由于其强大的功能,事实上已经被认为是图像处理标准库了。PIL功能非常强大,而且API却非常简单易用。

由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。

安装Pillow库

1
pip install Pillow

官方文档上有提供Pillow支持的Python 版本。基本上Python3.7+版本对Pillow新版都是支持的。
https://pillow.readthedocs.io/en/latest/installation.html

批量修改图片尺寸

在网上下载了一溜的avatar的头像图,大小都是800*800的,在博客中用,发现太大了,还占多的空间,想批量全部把大小修改成 80*80的,这样占的空间也小,反正够用。

原来800*800大小的图片,一张就要75KB左右,改成80*80大小后,就只有7KB左右了。

比如当前存放原图片的目录为:C:\a

解决思路

  • 第一步,新建一个新的目录,用来存放新的尺寸的图片;(比如直接在目录后面加个 _new
  • 第二步,用glob.glob() 方法把目录下所有的图片路径获取出来,返回一个List;
  • 第三步,遍历列表,处理每一张图片尺寸,把新的图片保存到新的目录中

修改图片尺寸代码:

这个很简单,就这么三步:

1
2
3
4
5
from PIL import Image

img = Image.open("abc.jpg") # 打开图片
new_img = img.resize((80, 80), Image.BILINEAR) # 修改图片尺寸
new_img.save("new_abc.jpg") # 保存图片

完整代码实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from PIL import Image
import os
import glob

# 创建目录
def mkdir(path):
outdir = os.path.exists(path)
if not outdir:
os.makedirs(path)

# 修改所有图片尺寸
def change_pic_size(path, width, height):
out_dir = path + '_new' # 改好尺寸后的新文件夹
mkdir(out_dir)

path_files = path + '\\' + '*.*' # 需要修改的图片文件夹中所有图片文件
path_list = glob.glob(path_files)
# print(path_list)
for picfile in path_list:
img = Image.open(picfile)
# img.show()
# print(img.mode)
try:
new_img = img.resize((width, height), Image.BILINEAR)
# print(new_img.mode)
new_img.save(os.path.join(out_dir, os.path.basename(picfile)))
except Exception as e:
print(e)

# 批量修改图片尺寸
change_pic_size(path=r'C:\a', width=80, height=80)

执行完代码后,就得到了一个新的图片目录(’C:\a_new’),里面都是80*80的图片,图片文件名都没变。

  • 本文标题:Python 批量修改图片尺寸
  • 本文作者:HDUZN
  • 创建时间:2022-05-10 10:44:19
  • 本文链接:http://hduzn.cn/2022/05/10/Python-批量修改图片尺寸/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论