【第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小】
————————————————————————————————————————————————————————————
这是什么意思?第一眼看不懂?又是操作图片的?
百度了一下:
思路:遍历给出目录下的图片,把大于iPhone5分辨率的图片都进行缩放。使用Python的PIL库对图片进行处理,IPhone5屏幕分辨率为640 × 1136,将大于该分辨率的图片按照一定比例缩放至适合大小并保存。
——————————————————————————————————————————————————————
好吧。试试:
from PIL import Image
import re
import os
# 源目录
mypath = r'G:/python/picture/'
# 输出目录
outpath = r'G:/python/picture2/'
def resizedpicture(plist,mypath,outpath,size):
'''
outpath是存放输出转换后图片的目录
name是文件名
imgtype是文件类型
size是缩放大小
'''
for i in plist:
#打开文件,需要添加路径名
im=Image.open(mypath+i).convert('RGB')
out = im.resize(size)
proname= os.path.splitext(i)[0]
outname=outpath+i
out.save(outname, 'jpeg')
print('done!')
#批量获得文件名
def openpicfile(filesource):
plist=[]
#获取所有文件和目录
for x in os.listdir(filesource):
fullname=os.path.join(mypath,x)
#选择图片文件,isfile()方法需要完整路径
if os.path.isfile(fullname) and os.path.splitext(x)[1]=='.jpg':
plist.append(x)
print(plist)
return plist
if __name__ == '__main__':
plist=openpicfile(mypath)
resizedpicture(plist,mypath,outpath,(640,1136))
——————————————————————————————————————————
虽然题目很基础,但是我的基础很差。不行啊。学完就忘了。还有就是代码命名风格太差了。实在没有观赏性。需要改进!做一道题需要一个多小时。太慢了