python修改文件格式为jpg_利用python将webp文件转化为jpg文件,将png文件修改为jpg,图像重命名...

webp是谷歌发行的一种不损伤图像质量的压缩存储方式,可有效减小图像数据存储空间。

但是在神经网络中,常用的输入图像格式为jpg,所以需要转化,利用PIL库

一、单张图像处理

import os

from PIL import Image

path = "E:\\newdatas\\data\\try\\991.webp"

im=Image.open(path)

im.load()

im.save("E:\\newdatas\\data\\try\\991.jpg")

os.remove(path)

我的运行环境是win10,所以图像路径格式采用双斜线或反斜线,运行脚本,可将该图像转化为jpg格式的文件存储,并且删除原图像。

代码解析:

PIL是python的第三方图像处理库。

Image.open(path)是读取图像,但是该操作不读取图像数据,因此如果需要对图像做处理,需要再使用Image.load()来强行加载图像数据。

使用im.save()保存图像,可直接将图像保存成需要的格式。(不放心的话,可以再读取一下重新保存的图像,输出其format属性,验证一下是否是jpeg)

保存完之后删除原图像,直接使用os.remove()函数

二、批量处理

importosfrom PIL importImage#图像预处理包括修改图像格式、编号

classproimage():def __init__(self):

self.path= "E:\\newdatas\\data\\try"

#读取文件夹下图像

defread(self):

filelist=os.listdir(self.path)returnfilelistdefwebp2jpg(self,filelist):#查找图像方式不同,该函数只查找所有.webp格式的文件

for item infilelist:if item.endswith('.webp') :

src=os.path.join(os.path.abspath(self.path), item)print("src=",src)

im=Image.open(src)

im.load()

save_name=src.replace('webp','jpg')

im.save('{}'.format(save_name),'JPEG')

os.remove(src)if __name__ == '__main__':

newtype=proimage()

filelist=newtype.read()

newtype.webp2jpg(filelist)

三、PNG格式修改为jpg

PNG是一种无损压缩的位图片格式,其通道数=4,除了R,G,B外,还有一个透明度,因此在修改其格式为jpg时,需要放弃透明度通道。

因此思路是读取图像,获取图像通道,将通道merge为rgb,图像另存为jpg格式。

defpng2jpg(self,filelist):for item infilelist:if item.endswith(".png"):

src=os.path.join(os.path.abspath(self.path), item)

im=Image.open(src)

im.load()#print("原图像通道数='{}'".format(len(im.split())))

r,g,b,a=im.split()

im=Image.merge("RGB",(r,g,b))#print('现图像通道数=',len(im.split()))

save_name=src.replace("png","jpg")

im.save('{}'.format(save_name),'JPEG')

os.remove(src)

四、图像编号

为较好的用于深度学习,需要将图像按照顺序进行编号,代码如下

defrename(self,filelist):

i=1542

for item infilelist:if item.endswith('.jpg') or item.endswith('.jpeg') or item.endswith('.JPG'):

src=os.path.join(os.path.abspath(self.path),item)

dst=os.path.join(os.path.abspath(self.path), '0' + format(str(i), '0>3s') + '.jpg')

os.rename(src,dst)#print('converting %s to %s ...' % (src, dst))

i=i+1

使用时请注意修改文件路径和编号初始值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值