Python代码实现将png格式图片批量转换为jpg个格式

爷,独闯天下 提交于 2019-12-04 18:02:40

Python代码实现将png格式图片批量转换为jpg个格式

问题由来:

最近在做行人检测相关的项目,需要用opencv处理数据集,选用的是INNRIA数据集,但是opencv打开png格式的图片总是报错,故需要将图片转换为jpg格式。

代码实现:

import os
from PIL import Image

dirname_read="png格式文件夹路径/"   //注意后面的斜杠
dirname_write="jpg格式输出路径/"
names=os.listdir(dirname_read)
count=0
for name in names:
    img=Image.open(dirname_read+name)
    name=name.split(".")
    if name[-1] == "png":
        name[-1] = "jpg"
        name = str.join(".", name)
        r,g,b,a=img.split()              
        img=Image.merge("RGB",(r,g,b))   
        to_save_path = dirname_write + name
        img.save(to_save_path)
        count+=1
        print(to_save_path, "------conut:",count)
    else:
        continue

可能遇到的问题:

有些png格式的图片是四通道(多了aphla通道),jpg格式是三通道,故需要将png图片的rgb通道提取出来再进行转换。 有些情况下不是必须的。把这两行代码注释掉即可。

代码:
r,g,b,a=img.split()              
img=Image.merge("RGB",(r,g,b)) 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!