• python练习册 每天一个小程序 第0005题


     1 # -*-coding:utf-8-*-
     2 __author__ = 'Deen'
     3 '''
     4 题目说明: 你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。
     5 
     6 思路: 先获取该目录下所有图片的绝对路径,再一个一个打开,resiz改变大小保存
     7 '''
     8 
     9 from PIL import Image
    10 import os
    11 
    12 
    13 # 获取目录下所有图片的绝对路径
    14 def list_files(dir, wirldcard, recursion):
    15     files_text = list()
    16     exts = wirldcard.split(" ")
    17     files = os.listdir(dir)
    18     for name in files:
    19         fullname = os.path.join(dir, name)
    20         if (os.path.isdir(fullname) & recursion):
    21             list_files(fullname, wirldcard, recursion)
    22         else:
    23             for ext in exts:
    24                 if (name.endswith(ext)):
    25                     files_text.append(fullname)
    26                     break
    27     # print files_text
    28     return files_text
    29 
    30 
    31 def images_resize(imgs, width, height):
    32     n = 0
    33     for img in imgs:
    34         n += 1
    35         image = Image.open(img)
    36         out = image.resize((width, height), Image.ANTIALIAS)
    37         out.save(str(n) + '.jpg', 'jpeg')
    38 
    39 
    40 if __name__ == '__main__':
    41     dir = "E:\images"
    42     wildcard = ".jpg .png"
    43     images_resize(list_files(dir, wildcard, 1), 500, 500)
    44 
    45 '''
    46 参考代码:
    47 import os
    48 
    49 from PIL import Image
    50 
    51 def resize_image(image):
    52     im = Image.open(image)
    53     width, height = im.size
    54     if height > 1136 or width > 640:
    55         th = height / 1136
    56         td = width / 640
    57         ts = max(th, td)
    58         nh = int(height / ts)
    59         nw = int(width / ts)
    60         im = im.resize((nw, nh))
    61         im.save(image)
    62         print('Successfully resized %s. New width is %i, new height is %i.' % (image, nh, nw))
    63     else:
    64         print("There's no need to resize %s." % image)
    65 
    66 def main():
    67     for i in os.listdir():
    68         try:
    69             resize_image(i)
    70         except IOError:
    71             print("Oops! %s is not supported to make the change!" % i)
    72 
    73 if __name__ == '__main__':
    74     main()
    75 
    76 '''
  • 相关阅读:
    JavaScript自定义事件
    用Java构建一个简单的WebSocket聊天室
    PHP实现支付宝小程序用户授权的工具类
    jq ajax超时设置
    gulp使用笔记
    vue学习—组件的定义注册
    echarts设置线条粗细
    求js数组的最大值和最小值
    js删除数组中的 "NaN"
    jq方法(end)
  • 原文地址:https://www.cnblogs.com/deen-/p/7149404.html
Copyright © 2020-2023  润新知