Python实现图片格式转换

经常会遇到图片格式需要转换的情况,这篇文章主要为大家详细介绍了Python实现图片格式转换,文中示例代码介绍的非常详细、实用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Python实现图片格式转换的具体代码,供大家参考,具体内容如下

碰上这样一个情景:

我从网络上下载了一张表情包图片,存放在 MyImages 文件夹下,文件类型为 .wepg ,为了能够在QQ上顺利发送,我需要将它转换为常用的 .jpg-600.jpeg 格式。

如图:

解决:

MyImages 目录下创建名为 convert.py 的Python文件,开始代码编写

代码思路:

  • 获取当前目录的文件名列表
  • 开始遍历列表元素
  • 尝试读取图片,如果遇到 IOError (说明不是可读取的图片类型,略过这一文件) ,否则继续执行
  • 如果图片已经是.jpg-600.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-600 或 .jpeg 类型,则跳过             continue         else:                      #img.save("%s.jpg-600"%(name[0:(-type_length-1)]), 'jpeg')             #修改:改用下面这行代码:             img.save("%s.jpg-600"%(file_name), 'jpeg')                          os.rename(name, "./SourceImage/%s"%name) #移动原图片,此处用shutil.move( , ) 方法同样可行, 而且这个方法可以实现文件在磁盘间的移动     except IOError:         print("one file was ignored")

运行:

运行前

运行时

运行后

原图片将保留

以后再下载保存的文件就运行一下这个代码就好了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持0133技术站。

以上就是Python实现图片格式转换的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » python