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 '''

最新文章

  1. NGUI Tween动画Scale与Transform冲突
  2. C# 文件/文件夹重命名
  3. python:列表与元组
  4. RichTextBox着色与着色不闪
  5. 【风马一族_Android】Android Studio 给APP设置签名
  6. 音频视频播放(jquery中将jquery方法转化成js方法)
  7. Velocity 语法示例
  8. 深度学习word2vec笔记之应用篇
  9. Appium的前世今生
  10. Android菜鸟的成长笔记(11)——Android中的事件处理
  11. HTML 笔记 基础1
  12. day14 集合与函数
  13. docker镜像的常用操作
  14. Array.asList()
  15. CentOS 7 - 安装Windows字体!
  16. Angular待办事项应用4——模拟web服务
  17. while、for循环控制之if、else
  18. 连接池--sp_reset_connection
  19. day26 CRM search && 增删改查
  20. Centos7.4 更换国内yum源

热门文章

  1. HashSet源码学习
  2. 016 Linux 卧槽,看懂进程信息也不难嘛?top、ps
  3. JMM之Java线程间通讯——等待通知机制及其经典范式
  4. docker安装sentinel-dashbord
  5. python中面向对象VS面向过程
  6. OLAP阵营又增一猛将,比肩Power BI不是说说而已!
  7. 【面像对象编程OOP】五种设计原则 Solid
  8. 【C# 程序集】.NET core Could not load file or assembly
  9. C# StopWatch程序性能_时间计时器
  10. Java面试题2017