png2jpg代码

242 阅读1分钟

下面直接给出转换代码png2jpg.py文件,虽然精度可能会有所损失,但是影响不大:

方法一

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 = img.convert('RGB')
#RGBA意思是红色,绿色,蓝色,Alpha的色彩空间,Alpha指透明度。而JPG不支持透明度,所以#要么丢弃Alpha,要么保存为.png文件
        img.save(to_save_path)
        count+=1
        print(to_save_path, "------conut:",count)
    else:
        continue

方法二

import os
from skimage import io
 
 
def png2jpg(input_path, output_path):
    """
    函数功能:将input_path路径下的所有png格式的图像以jpg格式保存至output_path
    """
    if not os.path.exists(output_path):
        os.makedirs(output_path)
    images = os.listdir(input_path)
 
    for i in images:
        img = io.imread(os.path.join(input_path, i))
        filename = os.path.splitext(i)[0]
        io.imsave(output_path+filename+'.jpg', img)
 
 
if __name__ == '__main__':
    input_path = './dataset/celebA/train_png/'
    output_path = './dataset/celebA/train_jpg/'
 
    png2jpg(input_path, output_path)
    
 
  • 错误1 :cannot import name '_validate_lengths' from 'numpy.lib.arraypad'

    解决方法:pip install --upgrade scikit-image

  • 错误2 :JPEG does not support alpha channel.