【世界报资讯】Python实现图片格式转换
本文实例为大家分享了Python实现图片格式转换的具体代码,供大家参考,具体内容如下
碰上这样一个情景:
(相关资料图)
我从网络上下载了一张表情包图片,存放在 MyImages
文件夹下,文件类型为 .wepg
,为了能够在QQ上顺利发送,我需要将它转换为常用的 .jpg
或 .jpeg
格式。
如图:
解决:
在 MyImages
目录下创建名为 convert.py
的Python文件,开始代码编写
代码思路:
获取当前目录的文件名列表开始遍历列表元素尝试读取图片,如果遇到IOError
(说明不是可读取的图片类型,略过这一文件) ,否则继续执行如果图片已经是.jpg
或.jpeg
后缀,则不处理将图片以jpeg
格式保存在当前目录将原图片移动到./SourceImage
文件夹下(如果此文件夹不存在则新建)
完整代码
#!python3 import os from PIL import Image #获取文件名列表 imgList = os.listdir("./") ##函数:获取文件的后缀长度(例如 jpg 和 jpeg 的长度分别为 3 和 4 ) #def typeNameLengthCount(name): # count = 0 # for i in range(1, len(name)): # if(name[-i] == "."): # break # else: # count += 1 # return count #修改:上面这是原来的代码,后来想起os库有现成的分离文件名和后缀名的函数,于是此自定义函数弃用 #检查 ./SourceImage 目录是否存在,不存在则创建它 if (not (os.path.exists("./SourceImage"))): os.mkdir("./SourceImage") #开始遍历文件 for name in imgList: try: img = Image.open(name) #尝试打开图片,如果不是可以打开的类型,则忽略(因为需要忽略代码文件本身及后面创建的SourceImage文件夹) #type_length = typeNameLengthCount(name) #file_type = name[-type_length:] #得到后缀的长度 #修改:用库方法替代自定义方法: file_name, file_type = os.path.splitext(name) if file_type == "jpg" or file_type == "jpeg": #如果已经是 .jpg 或 .jpeg 类型,则跳过 continue else: #img.save("%s.jpg"%(name[0:(-type_length-1)]), "jpeg") #修改:改用下面这行代码: img.save("%s.jpg"%(file_name), "jpeg") os.rename(name, "./SourceImage/%s"%name) #移动原图片,此处用shutil.move( , ) 方法同样可行, 而且这个方法可以实现文件在磁盘间的移动 except IOError: print("one file was ignored")
运行:
运行前
运行时
运行后
原图片将保留
以后再下载保存的文件就运行一下这个代码就好了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
X 关闭
X 关闭
- 1现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 2如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 3AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 4转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 5充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 6好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 7名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 8亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 9京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 10网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久