1 图片路径
注意:路径中不能出现中文,出现中文会找不到路径
所有图片保存在all_imgs文件夹,pre文件用来保存修改尺寸后的图片
07-23是通过日期命名的文件,18-30-10-2是通过拍摄参数命名的文件
原图片为jpg格式,根据需要把图片按00000001格式保存
2 完整代码(resize_img.py)
from PIL import Image
import os
import glob
'''
os.path.join()函数:连接两个或更多的路径名组件
1.如果各组件名首字母不包含’/’,则函数会自动加上
2.如果有一个组件是一个绝对路径,则在它之前的所有组件均会被舍弃
3.如果最后一个组件为空,则生成的路径以一个’/’分隔符结尾
os.path.basename(jpgfile)
返回path最后的文件名。如果path以/或\结尾,那么就会返回空值
Image.NEAREST :低质量
Image.BILINEAR:双线性
Image.BICUBIC :三次样条插值
Image.ANTIALIAS:高质量
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,包括当前文件名
root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
glob.glob返回所有匹配的文件路径列表
'''
#读取图片,修改图片,另存图片
def convertjpg(jpgfile,outdir,width=960,height=600,img_sum=0):
img=Image.open(jpgfile)#提取目录下所有图片
try:
new_img=img.resize((width,height),Image.BILINEAR)#更改尺寸
img_sum=str('%08d'%img_sum)#图片保存成00000001格式
new_img.save(os.path.join(outdir)+img_sum+'.jpg')#保存到另一目录
except Exception as e:
print(e)
#读取文件名
def file_name(file_dir):
L=[]#保存文件名
img_num=0#计算图片总数
for root, dirs, files in os.walk(file_dir):
img_num=img_num+len(files)
one=os.path.basename(str(root))#获取路径最后的/或者\后的文件名
L.append(one)
num=len(L)-1 #获取路径下文件个数
print('%s路径下有%d个文件,一共%d张图片'%(L[0],num,img_num))
return L ,num ,img_num
filepath='C:/Users/Chengguo/Desktop/all_imgs/07-23'
files,files_num,imgs_num=file_name(filepath)
img_name=0
for i in range(files_num):#遍历文件
filename=files[i+1]#文件索引从1开始
for jpgfile in glob.glob(filepath+"/"+filename+"/*.jpg"):#返回所有匹配的图片路径列表
print(jpgfile)
img_name=img_name+1
convertjpg(jpgfile,"C:/Users/Chengguo/Desktop/all_imgs/pre/",img_sum=img_name)
3 编译过程
runfile('C:/Users/Chengguo/Desktop/py_study/images/resize_img.py', wdir='C:/Users/Chengguo/Desktop/py_study/images')
07-24路径下有7个文件,一共431张图片
C:/Users/Chengguo/Desktop/all_imgs/07-24/07-24-60-1\DJI_0001.JPG
C:/Users/Chengguo/Desktop/all_imgs/07-24/07-24-60-1\DJI_0002.JPG
C:/Users/Chengguo/Desktop/all_imgs/07-24/07-24-60-1\DJI_0003.JPG
C:/Users/Chengguo/Desktop/all_imgs/07-24/07-24-60-1\DJI_0004.JPG
C:/Users/Chengguo/Desktop/all_imgs/07-24/07-24-60-1\DJI_0005.JPG
C:/Users/Chengguo/Desktop/all_imgs/07-24/07-24-60-1\DJI_0006.JPG
C:/Users/Chengguo/Desktop/all_imgs/07-24/07-24-60-1\DJI_0007.JPG
C:/Users/Chengguo/Desktop/all_imgs/07-24/07-24-60-1\DJI_0008.JPG
以下省略很多行......
4 生成结果
版权声明:本文为weixin_42899627原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。