给一个文件夹里的所有图片进行缩略,代码:
import os
import glob
from PIL import Image
def thumbnail_pic(path):
a=glob.glob(r'./*.jpg')
for x in a:
name=os.path.join(path,x)
im=Image.open(name)
im.thumbnail((80,80))
print(im.format,im.size,im.mode)
im.save(name,'JPEG')
print('Done!')
if __name__=='__main__':
path='.'
thumbnail_pic(path)
学习笔记:
1、os模块,python的os模块封装了常见的文件和目录操作。
2、PIL模块中Image类thumbnail()方法可以用来制作缩略图,它接受一个二元数组作为缩略图的尺寸,然后将示例缩小到指定尺寸。
Image.resize()和Image.thumbnail()的区别
根据代码和代码注释, 这两个函数都是对图片进行缩放, 两者的主要区别如下:
thumbnail()函数内部调用了resize(), 可以认为thumbnail()是对resize()的一种封装
两个函数的基本调用方式如下:
from PIL import Image
# Image.resize usage
with Image.open("test.jpg") as img:
resized = img.resize((new_x, new_y), resample=Image.LANCZOS)
resized.save("resized.jpg", format="jpeg")
# Image.thumbnail usage
with Image.open("test.jpg") as img:
img.thumbnail((max_x, max_y), resample=Image.LANCZOS)
img.save("thumbnail.jpg", format="jpeg")
3、glob模块,glob.glob(pathname),返回所有匹配的文件路径列表。