png与jpg图片格式互转(可批量)

1. png转jpg

import os
from PIL import Image

# 获取指定目录下的所有png图片
def get_all_png_files(dir):
    files_list = []
    for root, dirs, files in os.walk(dir):
        for file in files:
            if os.path.splitext(file)[1] == '.png':
                files_list.append(os.path.join(root, file))
    return files_list

# 批量转换png图片为jpg格式并保存到新的文件夹
def png2jpg(files_list, output_dir):
    for file in files_list:
        img = Image.open(file)
        new_file = os.path.splitext(file)[0] + '.jpg'
        output_file = os.path.join(output_dir, os.path.basename(new_file))
        img.convert('RGB').save(output_file)

if __name__ == '__main__':
    dir = 'D:\Assistant\Desktop\ICStudy\集创赛\分赛区决赛' # png图片目录
    output_dir = 'D:\Assistant\Desktop\ICStudy\集创赛\转换后的图片' # 新的文件夹路径
    files_list = get_all_png_files(dir)
    png2jpg(files_list, output_dir)

请确保在运行代码之前,目标文件夹 'D:\Assistant\Desktop\ICStudy\转换后的图片' 已经存在,这样转换后的图片就会保存在这个新的文件夹中。如果新文件夹不存在,你可以提前创建它。记得将 diroutput_dir 的路径修改为你实际的文件夹路径。

2. jpg转png

import os
from PIL import Image

# 获取指定目录下的所有jpg图片
def get_all_jpg_files(dir):
    files_list = []
    for root, dirs, files in os.walk(dir):
        for file in files:
            if os.path.splitext(file)[1] == '.jpg':
                files_list.append(os.path.join(root, file))
    return files_list

# 批量转换jpg图片为png格式并保存到新的文件夹
def jpg2png(files_list, output_dir):
    for file in files_list:
        img = Image.open(file)
        new_file = os.path.splitext(file)[0] + '.png'
        output_file = os.path.join(output_dir, os.path.basename(new_file))
        img.convert('RGBA').save(output_file)

if __name__ == '__main__':
    dir = 'D:\Assistant\Desktop\ICStudy\集创赛\images' # jpg图片目录
    output_dir = 'D:\Assistant\Desktop\ICStudy\集创赛\png' # 新的文件夹路径
    files_list = get_all_jpg_files(dir)
    jpg2png(files_list, output_dir)

请确保在运行代码之前,目标文件夹 './converted_png' 已经存在,这样转换后的图片就会保存在这个新的文件夹中。如果新文件夹不存在,你可以提前创建它。记得将 diroutput_dir 的路径修改为你实际的文件夹路径。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值