Python实现图片格式转换
作者:NiFuture 发布时间:2023-08-03 04:58:57
标签: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")
运行:
运行前
运行时
运行后
原图片将保留
以后再下载保存的文件就运行一下这个代码就好了
来源:https://blog.csdn.net/NICE__FUTURE/article/details/80868119


猜你喜欢
- 暂且放下你的编程语言来瞻仰下我所见过的最棒的标准库。为项目选择编程语言和挑选你最爱的球队不一样。应该从实用主义出发,根据特定的工作选择合适的
- 前言本文主要给大家介绍了关于Python用字符串调用函数或方法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:先看一个例子:&
- 0 与任意非数字(或者说,不可转化为数字的字符)前导的字符串比较(操作符为==), 均返回 true.原因是, 数字与字符串比较时, 先尝试
- 在平时的工作中,我们的目录有很多的视频文件,如果你没有一个好的视频分类习惯,在找视频素材的时候会很费时,通过对视频的分辨路进行分类可以在需要
- 今天刚接触python,查看了一些环境建立的文章,可能是年代久远很多都不适用,现在mac搭建python环境变得更简单。大神勿喷。首先去py
- set 是一个无序的元素集合,支持并、交、差及对称差等数学运算, 但由于 set 不记录元素位置,因此不支持索引、分片等类序列的操作。初始化
- php中session_id()函数原型及说明session_id()函数说明:stringsession_id([string$id])s
- 要使用摄像头,需要使用cv2.VideoCapture(0)创建VideoCapture对象,参数0指的是摄像头的编号,如果你电脑上有两个摄
- 1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。 它包括两个类:Pattern和Ma
- 这个javascript划词搜索功能,在很多地方我们都会看到,特别是装了浏览器插件的时候,当我们用鼠标选择一段文字的时候,就会出现搜索提示,
- 今天接到测试人员反应,测试环境前端应用程序无连接mysql数据库,登录mysql服务器,查看错误日志,发现有如下报错:ERROR 1135
- 摘要一直比较想知道图片经过卷积之后中间层的结果,于是使用pytorch写了一个脚本查看,先看效果这是原图,随便从网上下载的一张大概224*2
- 接上篇python smtplib模块自动收发邮件功能(一) ,用python smtplib模块实现了发送邮件程序了,那么接下来我们需要现
- 这里的内容以Linux进程基础和Linux文本流为基础。subprocess包主要功能是执行外部的命令和程序。比如说,我需要使用wget下载
- sql server 数据库,sa用户被锁定1、打开数据库——用Windows身份登录数据库2、登录名——双击sa(打开属性)3、常规——设
- 目录前言通过错误日志记录利用 channel 传输使用 sync/errgroup总结前言在 Go 语言程序开发中,goroutine 的使
- vue-cli使用stimulsoft.reports.js(保姆级教程)第一部分:数据源准备以下是JSON数据的教程json数据结构{&q
- nonzero函数返回非零元素的目录。返回值为元组, 两个值分别为两个维度, 包含了相应维度上非零元素的目录值。 import
- 前言在当前的JavaScript中,并没有枚举这个概念,在某些场景中使用枚举更能保证数据的正确性,减少数据校验过程,下面就介绍一下JavaS
- 我们公司网站的项目都是采用utf-8编码格式的,一天,发现部分电脑打开网站的一个页面是空白页,要在IE下重新选择编码才显示正常。我们网站的编