python 图片比例缩放、批处理(分步骤完成)

问题:实现将像素n*n的图片 等比例缩放为 30*30

0、环境要求:Python3.x 需要安装pillow模块:

pip install pillow

1、缩放一个图片:

from PIL import Image

img = Image.open("2.png")    # 读取图片
out = img.resize((30,30))    # 等比例缩放为30*30像素
out.save("2.png")            # 保存图片(覆盖原图)

2、批处理:

/* 目录结构
E:\data_eg\lip_train:
           ----------folder1:
                     --------pic1.png
                     --------pic2.png
                     --------pic3.png
           ----------folder2:
                     --------pic1.png
                     --------pic2.png
                     --------pic3.png
                     --------pic4.png
                     --------pic5.png
           ----------folder3:
                     --------pic1.png
                     --------pic2.png
*/


import os
from PIL import Image

path_target = "E:\data_eg\lip_train"  # liptrain路径下是文件夹,文件夹下是多张图片

path_list=os.walk(path_target)        # 使用os.walk()方法,遍历所有路径,文件

# filenames 保存所有图片名的 list
# root 保存二级目录
for root, dirs, filenames in path_list:
	for filename in filenames:                         # 遍历包含 所有文件名 的list
		file_path = os.path.join(root,filename)    # 合成得到每个图片的 绝对路径
		print(file_path)                           # 打印 绝对路径 至屏幕
		img = Image.open(file_path)                # 打开 此绝对路径 的图片
		out = img.resize((30,30))                  # 等比例缩放至 30*30 像素
		#out = img.convert('L')                    # 转换为灰度图像
		out.save(file_path)                        # 保存,覆盖原图片

 

 

你可能感兴趣的:(python基础积累,python,按比例图形缩放,批处理图片)