Python实现图片格式转换

 更新时间:2022年08月09日 17:20:07   作者:NiFuture  
经常会遇到图片格式需要转换的情况,这篇文章主要为大家详细介绍了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")

运行:

运行前

运行时

运行后

原图片将保留

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

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

相关文章

  • 深度学习环境搭建anaconda+pycharm+pytorch的方法步骤

    深度学习环境搭建anaconda+pycharm+pytorch的方法步骤

    本文主要介绍了深度学习环境搭建anaconda+pycharm+pytorch的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • python 爬取英雄联盟皮肤并下载的示例

    python 爬取英雄联盟皮肤并下载的示例

    这篇文章主要介绍了python 爬取英雄联盟皮肤并下载的示例,帮助大家更好的理解和学习使用python 爬虫,感兴趣的朋友可以聊继续
    2020-12-12
  • Python时间操作之pytz模块使用详解

    Python时间操作之pytz模块使用详解

    在学习Python过程中,我们已经了解了一些关于时间操作的库,如:Python内置库:time,datatime和第三方库:dateutil,pytz等。本文将详细讲讲pytz模块的使用,需要的可以参考一下
    2022-06-06
  • 用Python给二维码图片添加提示文字

    用Python给二维码图片添加提示文字

    今天教各位小伙伴怎么用Python给二维码图片添加提示文字,文中有非常详细的代码示例,对正在学习python的小伙伴很有帮助,需要的朋友可以参考下
    2021-05-05
  • Python学习之包与模块详解

    Python学习之包与模块详解

    在了解完面向对象与异常处理机制之后,本文将详细为大家介绍Python中的包与模块,文中的示例讲解详细,感兴趣的小伙伴可以学习一下
    2022-03-03
  • python实现字符串中字符分类及个数统计

    python实现字符串中字符分类及个数统计

    这篇文章主要介绍了python实现字符串中字符分类及个数统计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Python中那些 Pythonic的写法详解

    Python中那些 Pythonic的写法详解

    这篇文章主要介绍了Python中那些 Pythonic的写法详解,一份优雅、干净、整洁的代码通常自带文档和注释属性,读代码即是读作者的思路,需要的朋友可以参考下
    2019-07-07
  • python readlines函数示例解析

    python readlines函数示例解析

    readlines()是Python文件对象的一个方法,用于读取文件中的所有行并将它们作为一个字符串列表返回,这篇文章主要介绍了python readlines函数解析,需要的朋友可以参考下
    2023-06-06
  • python设置环境变量的作用整理

    python设置环境变量的作用整理

    在本篇文章里小编给大家整理的是关于python设置环境变量的作用整理内容,需要的朋友们可以学习参考下。
    2020-02-02
  • 分享一个常用的Python模拟登陆类

    分享一个常用的Python模拟登陆类

    这篇文章主要分享的是一个常用的Python模拟登陆类,而且可以支持cookie保存,十分的实用,这里推荐给大家,有需要的小伙伴可以参考下。
    2015-03-03

最新评论