Python实现图片格式转换
作者:NiFuture 时间:2023-08-03 04:58:57
本文实例为大家分享了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")
运行:
运行前
运行时
运行后
原图片将保留
以后再下载保存的文件就运行一下这个代码就好了
来源:https://blog.csdn.net/NICE__FUTURE/article/details/80868119
标签:Python,格式转换
0
投稿
猜你喜欢
AJAX缓存问题的两种解决方法(IE)
2008-05-02 20:57:00
python 简单备份文件脚本v1.0的实例
2022-05-01 01:47:53
Oracle字符集修改查看方法
2024-01-17 05:45:13
Python中的字典遍历备忘
2021-12-08 05:59:37
Python numpy实现二维数组和一维数组拼接的方法
2022-02-24 09:40:53
mysql8.0.20数据目录迁移的方法
2024-01-25 04:41:18
BootStrap的alert提示框的关闭后再显示怎么解决
2024-04-28 09:50:24
PyTorch梯度裁剪避免训练loss nan的操作
2022-02-16 10:56:23
基于AJAX技术提高搜索引擎排名
2008-01-24 12:45:00
MSSQL 2000 使用帮助(sql server简明教程)
2024-01-22 06:17:34
Mysqlslap MySQL压力测试工具 简单教程
2024-01-15 20:10:10
基于python3实现倒叙字符串
2023-02-02 17:41:28
pytorch绘制曲线的方法
2022-09-03 06:43:54
vue实现登录后页面跳转到之前页面
2024-04-27 16:00:53
python读取excel指定列数据并写入到新的excel方法
2022-04-06 20:15:46
python多线程semaphore实现线程数控制的示例
2022-12-29 18:31:40
完美卸载Oracle数据库
2024-01-18 02:50:27
Windows下安装python MySQLdb遇到的问题及解决方法
2022-07-20 13:22:36
Varchar与char的区别
2008-02-28 12:44:00
vue中el-table两个表尾合计行联动同步滚动条实例代码
2023-07-02 17:08:56