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")

运行:

运行前

运行时

运行后

原图片将保留

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

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

(0)

相关推荐

  • 使用python将图片格式转换为ico格式的示例

    因为python打包的时候需要用到ico图片格式,网上看好的图片又没有ico,于是自己寻找了一下python转换图片格式的方法,彻底解决这个问题,以后就可以自己轻松实现转化了. 代码如下: """ Author:Robin·QI Notes:将图片转换为ico格式 """ # PythonMargick包可以到Unofficial Windows Binaries for Python Extension Packages下载 import Py

  • python实现m3u8格式转换为mp4视频格式

    开发动机:最近用手机QQ浏览器下载了一些视频,视频越来越多,占用了手机内存,于是想把下载的视频传到电脑上保存,可后来发现这些视频都是m3u8格式的,且这个格式的视频都切成了碎片,存在电脑里不方便查看,于是想把它转换为其他可以直接打开播放的完整视频,到网上找了一些工具,都不怎么好用,后来发现一个手机端的"缓冲合并工具",倒是可以用,但是合并的视频顺序是乱的,碎片的视频顺序还需要用户手动调整,感觉太耽误时间了,于是自己打算写一个转换工具. 直接上代码:(程序的文件名为:convert_m3

  • 在Python的struct模块中进行数据格式转换的方法

    Python是一门非常简洁的语言,对于数据类型的表示,不像其他语言预定义了许多类型(如:在C#中,光整型就定义了8种),它只定义了六种基本类型:字符串,整数,浮点数,元组,列表,字典.通过这六种数据类型,我们可以完成大部分工作.但当Python需要通过网络与其他的平台进行交互的时候,必须考虑到将这些数据类型与其他平台或语言之间的类型进行互相转换问题.打个比方:C++写的客户端发送一个int型(4字节)变量的数据到Python写的服务器,Python接收到表示这个整数的4个字节数据,怎么解析成Py

  • Python实现把json格式转换成文本或sql文件

    python如何将json格式的数据快速的转化成指定格式的数据呢?或者转换成sql文件? 下面的例子是将json格式的数据准换成以#_#分割的文本数据,也可用于生成sql文件. [root@bogon tutorial]# vi json2txt.py #-*- coding: UTF-8 -*- import json data = [] with open('./tencent_test.json') as f: for line in f: data.append(json.loads(l

  • python中有关时间日期格式转换问题

    每次遇到pandas的dataframe某列日期格式问题总会哉坑,下面记录一下常用时间日期函数.... 1.字符串转化为日期 str->date import datetime date_str = '2006-01-03' date_ = datetime.datetime.strptime(date_str,'%Y-&m-%d') 这是单个字符串的转化,其中"%Y-%m-%d"表示日期字符串的格式,若date_str='2006/1/3',则可写为"%Y/%

  • 把JSON数据格式转换为Python的类对象方法详解(两种方法)

    JOSN字符串转换为自定义类实例对象 有时候我们有这种需求就是把一个JSON字符串转换为一个具体的Python类的实例,比如你接收到这样一个JSON字符串如下: {"Name": "Tom", "Sex": "Male", "BloodType": "A", "Hobbies": ["篮球", "足球"]} 我需要把这个转换为具

  • Python基于pandas实现json格式转换成dataframe的方法

    本文实例讲述了Python基于pandas实现json格式转换成dataframe的方法.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #!python3 import re import json from bs4 import BeautifulSoup import pandas as pd import requests import os from pandas.io.json import json_normalize class image_str

  • python实现批量图片格式转换

    本文实例为大家分享了python实现批量格式转换的具体代码,供大家参考,具体内容如下 深度学习过程中总是绕不开数据集的制作,有时候实际图片格式或大小可能与需要关心的图片信息不一致,那么我们只能手动做好数据预处理,再进行training dataset.现在将介绍最简单的格式转换问题.可以支持批量图片任意格式转换. 直接上代码: # 将jpg格式转位png import os from PIL import Image import shutil import sys # Define the i

  • python轻松实现代码编码格式转换

    最近刚换工作不久,没太多的时间去整理工作中的东西,大部分时间都在用来熟悉新公司的业务,熟悉他们的代码框架了,最主要的是还有很多新东西要学,我之前主要是做php后台开发的,来这边之后还要把我半路出家的前端学好.还要学习C++,哈哈,总之很充实了,每天下班回家都可以睡的很香(一句话总结,就是吃得香.睡的香~).再说说换工作时候吧,今年年初正式毕业半年了,感觉自己技术增长很快,原公司里面程序员的地位还不如运营,所以想换个工作,面试了3家(2家大的.一家小的),都给offer了,当然从大公司里面挑了个各

  • Python将图片批量从png格式转换至WebP格式

    实现效果 将位于/img目录下的1000张.png图片,转换成.webp格式,并存放于img_webp文件夹内. 源图片目录 目标图片目录 关于批量生成1000张图片,可以参考这篇文章:利用Python批量生成任意尺寸的图片 实现示例 import glob import os import threading from PIL import Image def create_image(infile, index): os.path.splitext(infile) im = Image.op

随机推荐