码迷,mamicode.com
首页 > 编程语言 > 详细

Python Show-Me-the-Code 第 0005 题 批量图片处理

时间:2015-04-20 20:59:48      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:python   pil   图片处理   

第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。

思路:遍历给出目录下的图片,把大于iPhone5分辨率的图片都进行缩放。使用Python的PIL库对图片进行处理,IPhone5屏幕分辨率为640 × 1136,将大于该分辨率的图片按照一定比例缩放至适合大小并保存。

0005.批量图片处理.py

#!/usr/bin/env python
#coding: utf-8
import Image, os

# 源目录
myPath = ‘/home/bill/Pictures/‘
# 输出目录
outPath = ‘/home/bill/Pictures/output/‘

def processImage(filesource, destsource, name, imgtype):
    ‘‘‘
    filesource是存放待转换图片的目录
    destsource是存放输出转换后图片的目录
    name是文件名
    imgtype是文件类型
    ‘‘‘
    imgtype = ‘jpeg‘ if imgtype == ‘.jpg‘ else ‘png‘
    #打开图片
    im = Image.open(filesource + name)
    # 缩放比例
    rate = max(im.size[0]/640.0 if im.size[0] > 640 else 0, im.size[1]/1136.0 if im.size[1] > 1136 else 0)
    if rate:
        im.thumbnail((im.size[0]/rate, im.size[1]/rate))
    im.save(destsource + name, imgtype)

def run():
    # 切换到源目录,遍历源目录下所有图片
    os.chdir(myPath)
    for i in os.listdir(os.getcwd()):
        # 检查后缀
        postfix = os.path.splitext(i)[1]
        if postfix == ‘.jpg‘ or postfix == ‘.png‘:
            processImage(myPath, outPath, i, postfix)

if __name__ == ‘__main__‘:
    run()

Python Show-Me-the-Code 第 0005 题 批量图片处理

标签:python   pil   图片处理   

原文地址:http://blog.csdn.net/huangxiongbiao/article/details/45154043

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!