Python每日一题 006
2024-09-06 03:02:32
题目
你有一个目录,装了很多照片,把它们的尺寸变成都不大于 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)
实现效果
转换前的文件:
转换后的文件
最新文章
- 转载:JAVA中关于set()和get()方法的理解及使用
- centos locate搜索工具
- 黑马程序员——OC的内存管理学习小结
- 1.servlet hello实例---HelloServlet
- bzoj3571
- 使用Navicat for Oracle工具连接oracle的图文教程
- 使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC)
- HTML5本地化应用开发-HTML5 Web存储详解
- Oracle字符集转换
- Entity Framework查询原理
- 编译MangosZero
- Linux学习之CentOS(十三)-----磁盘管理之 磁盘与目录的容量(转) df 与du 命令
- nodejs模板加载的问题
- 作业二:Git的安装与使用
- WorldWind源码剖析系列:代理助手类ProxyHelper
- Spring mvc 返回JSON 在IE 下提示下载 解决办法
- 项目开发-->;高级功能汇总
- 开启GitHub模式,now!
- CODEVS4650 破损的键盘
- PHP数据结构之二 线性表中的顺序表的PHP实现