题目

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


如果只是单纯的通过将图片缩放到iPhone5分辨率大小,显然最后呈现出来的效果会很糟糕。所以等比例缩放到长(或宽)一定时,再将宽(或长)进行裁剪

代码

from PIL import Image
import os def ZoomImage(dir,filename):
IMG1=Image.open(dir)
width,height=IMG1.size
if (width/height)<=(i5_width/i5_height):
# 缩放到宽=iphone5的宽度
IMG1=IMG1.resize((i5_width,int(height*(i5_width/width))),Image.ANTIALIAS) else:
IMG1=IMG1.resize((int(width*(i5_height/height)),i5_height),Image.ANTIALIAS) # 裁剪
width,height=IMG1.size
x=(width-i5_width)//2
y=(height-i5_height)//2
h=i5_height+y
w=i5_width+x IMG2=IMG1.crop((x,y,w,h))
IMG2.save('E:/Converted/'+filename) def file_name(file_dir):
for root, dirs, files in os.walk(file_dir):
for file in files:
ZoomImage(root+'/'+file,file) if __name__ == '__main__':
i5_width=640
i5_height=1136
file_dir="E:/Picture"
file_name(file_dir)

实现效果

转换前的文件:

转换后的文件

最新文章

  1. 转载:JAVA中关于set()和get()方法的理解及使用
  2. centos locate搜索工具
  3. 黑马程序员——OC的内存管理学习小结
  4. 1.servlet hello实例---HelloServlet
  5. bzoj3571
  6. 使用Navicat for Oracle工具连接oracle的图文教程
  7. 使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC)
  8. HTML5本地化应用开发-HTML5 Web存储详解
  9. Oracle字符集转换
  10. Entity Framework查询原理
  11. 编译MangosZero
  12. Linux学习之CentOS(十三)-----磁盘管理之 磁盘与目录的容量(转) df 与du 命令
  13. nodejs模板加载的问题
  14. 作业二:Git的安装与使用
  15. WorldWind源码剖析系列:代理助手类ProxyHelper
  16. Spring mvc 返回JSON 在IE 下提示下载 解决办法
  17. 项目开发--&gt;高级功能汇总
  18. 开启GitHub模式,now!
  19. CODEVS4650 破损的键盘
  20. PHP数据结构之二 线性表中的顺序表的PHP实现

热门文章

  1. SGU 176 (有源汇最小流)
  2. 尽量用类型化的常量替代预处理器的 #DEFINE 方法
  3. vue仿追书神器,vue小说项目源码
  4. 2018-2019-2 20175105王鑫浩《Java程序设计》实验三 《敏捷开发与XP实践》
  5. Modular arithmetic and Montgomery form 实现快速模乘
  6. 测开之路三十八:css布局之定位
  7. 指针的value
  8. Mac-如何安装apk到android手机
  9. androidmanifest.xml 解码工具又来一发
  10. Java总结之Java简介