照片在线编辑器修改大小(Python3 批量更改图片尺寸代码详解和相关模块介绍)

1描述:

=====

1.1 python基本上可以简单的实现所有重复性或者批量性的东西,这是python的优势。

1.2批量改变图片尺寸到指定尺寸。

1.3相关模块:os.path模块和glob模块。

1.4环境:

华为笔记本电脑,deepin-linux操作系统,python3.8和微软vscode编辑器。




2 piliangsize.py代码:

===============

照片在线编辑

2.1注释版本

#导出模块 from PIL import Image import os.path import glob #指定大小为128,可调节,自定义函数及其参数 #jpgfile,导出路径,后面的大小是指定参数 def convertjpg(jpgfile,outdir,width=128,height=128): img=Image.open(jpgfile) try: new_img=img.resize((width,height),Image.BILINEAR) new_img.save(os.path.join(outdir,os.path.basename(jpgfile))) #错误跑出设置,这是比较严谨的写法,也可以把try和except去掉 except Exception as e: print(e) #读取jpg的名字,可能是数字或者文字均可,通配符,所有图片 for jpgfile in glob.glob("/home/xgj/Desktop/imageio/jpglist/*.jpg"): #生成后的文件,大小一致的图片,上面自定义函数的主要内容,大小省略,是上面的宽和高128 convertjpg(jpgfile,"/home/xgj/Desktop/imageio/jpglist1/")

2.2 简洁版:pil importimage的导出模块 importos . path import glob #指定可调大小128,自定义函数及其参数 #jpgfile,导出路径,以下大小为指定参数 defconvert jpg (jpg文件,outdir,宽度= 128,高度= 128): img = image。打开(jpg文件) 尝试: new _ img = img。resize((image . bilinear) new _ img . save(OS . path . join(outdir,OS.path.basename (jpg文件)) #错误地跑出了设置,这是更严谨的写法。也可以将try和except except exception作为e: print(e) # Read . jpg的名称,可以是数字或文字、通配符、所有图片 对于glob . glob(& # 34;/home/xgj/Desktop/imageio/jpg list/*。jpg & # 34): #生成的文件,同样大小的图片,上面自定义函数的主要内容,省略的大小,是上面128 Convertjpg (jpg文件,& # 34;/home/xgj/Desktop/imageio/jpglist 1/& # 34;)2.2简明版:

from PIL import Image import os.path import glob def convertjpg(jpgfile,outdir,width=128,height=128): img=Image.open(jpgfile) new_img=img.resize((width,height),Image.BILINEAR) new_img.save(os.path.join(outdir,os.path.basename(jpgfile))) for jpgfile in glob.glob("/home/xgj/Desktop/imageio/jpglist/*.jpg"): convertjpg(jpgfile,"/home/xgj/Desktop/imageio/jpglist1/")

3 glob模块:从PIL导入Image import OS . path import glob def convert jpg(jpg file,outdir,width=128,height = 128): img = Image . open(jpg file) new _ img = img . resize((width,height),Image。双线性) new _ img . save(OS . path . join(outdir,OS . path . basename(jpg file))) for jpg file in glob . glob(& # 34;/home/xgj/Desktop/imageio/jpg list/*。jpg & # 34): convertjpg(jpgfile,& # 34;/home/xgj/Desktop/imageio/jpglist 1/& # 34;) 3globab模块:

========

3.1有了它,可以找到符合特定规则的文件路径名。它类似于在windows下使用文件搜索。

3.2环球环球

import glob file = glob . glob(r & # 39;/home/xgj/Desktop/imageio/jpg list/*。jpg & # 39) print(type(file)) print(file) & # 39;'' # Result < class & # 39;列表& # 39;& gt [& # 39;/home/xgj/Desktop/imageio/jpg list/4 . jpg & # 39;, & # 39;/home/xgj/Desktop/imageio/jpg list/1 . jpg & # 39;, & # 39;/home/xgj/Desktop/imageio/jpg list/5 . jpg & # 39;, & # 39;/home/xgj/Desktop/imageio/jpg list/2 . jpg & # 39;, & # 39;/home/xgj/Desktop/imageio/jpg list/3 . jpg & # 39;] & # 39;''3.3环球网

获取一个日历对象,可以用来逐个获取匹配的文件路径名。

与glob.glob()的区别在于,glob.glob同时获取所有匹配路径,而glob。igloba一次只能获得一条匹配路径。

Import glob # The。父目录中的jpg文件 f = glob . igloba(r & # 39;/home/xgj/Desktop/imageio/jpg list/*。jpg & # 39) print(f)# & lt;0x7f6e2f0492e0处的generator object _ iglob & gt; for jpg in f: print(jpg) & # 39;'' #执行结果 < generator object _ iglob at 0x7fb 82422 B2 E0 & gt; /home/xgj/Desktop/imageio/jpg list/4 . jpg /home/xgj/Desktop/imageio/jpg list/1 . jpg /home/xgj/Desktop/imageio/jpg list/5 . jpg /home/xgj/Desktop/imageio/jpg/2 . jpg /home/xgj/Desktop/imageio/jpg list/3 . jpg[]''4 os.path模块:

= = = = = = = = = = = = =

4.1主要用于获取文件的属性。

4.2正式文件:

https://docs.python.org/3/library/os.path.html4.3 OS . path . join

os.path.join(路径1[,路径2[,...]])

当组合并返回多个路径时,第一个绝对路径之前的参数将被忽略。

& gt& gt& gtOS . path . join(& # 39;丁:& # 39;, 'csv & # 39, 'test.csv & # 39) & # 39;d:csvtest . CSV & # 39; & gt;& gt& gtOS . path . join(& # 39;windowstemp & # 39, '丁:& # 39;, 'csv & # 39, 'test.csv & # 39) & # 39;d:csvtest . CSV & # 39; & gt;& gt& gtOS . path . join(& # 39;/home/aa & # 39;,'/home/aa/bb & # 39;,'/home/aa/bb/c & # 39;) & # 39;/home/aa/bb/c & # 39;4.4 os.path.basename

os.path.basename(路径)

返回路径的最后一个文件名。如果路径以/或结尾,那么将返回空的值。

Python 3.8.0(默认为2020年5月27日21:07:57) [GCC 6 . 3 . 0 2017 05 16]Linux上 Type & # 34;救命& # 34;, "版权& # 34;, "学分& # 34;或者& # 34;许可证& # 34;了解更多信息。 & gt;& gt& gt导入OS . path & gt;& gt& gtOS . path . basename(& # 39;/home/xgj/Desktop/imageio/jpg list/5 . jpg & # 39;) & # 39;5.jpg & # 39 & gt;& gt& gtOS . path . basename(& # 39;/home/xgj/Desktop/imageio/jpg list & # 39;) & # 39;jpglist & # 39# jpglist在这里被视为文件名 & gt;& gt& gtOS . path . basename(& # 39;/home/xgj/Desktop/imageio/jpg list/& # 39;) & # 39;' & gt;& gt& gt= = =整理分享一下= =

喜欢就点赞,转发,收藏,评论。

您可以还会对下面的文章感兴趣

使用微信扫描二维码后

点击右上角发送给好友