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('d'%img_sum
)
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]
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 生成结果