python练习册之六

博客介绍了如何使用Python的PIL库处理目录中的图片,将大于iPhone5(640 × 1136分辨率)的图片缩放至适合大小,强调了基础操作的重要性以及代码风格的改进需求。

第 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))

——————————————————————————————————————————

虽然题目很基础,但是我的基础很差。不行啊。学完就忘了。还有就是代码命名风格太差了。实在没有观赏性。需要改进!做一道题需要一个多小时。太慢了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值