Python如何将bmp格式的图片批量转成jpg?

将bmp格式的图片批量转成jpg

# *_* coding : UTF-8 *_*
# 开发人员: csu·pan-_-||
# 开发时间: 2020/11/21 12:40
# 文件名称: bmp_to_jpg.py
# 开发工具: PyCharm
# 功能描述: 将bmp格式的图片批量转成jpg

import os
import cv2

# 图片的路径
bmp_dir = r'E:\Projects\bmp'
jpg_dir = r'E:\Projects\jpg'

filelists = os.listdir(bmp_dir)

for i,file in enumerate(filelists):
    # 读图,-1为不改变图片格式,0为灰度图  
    img = cv2.imread(os.path.join(bmp_dir,file),-1)
    newName = file.replace('.bmp','.jpg')
    cv2.imwrite(os.path.join(jpg_dir,newName),img)
    print('第%d张图:%s'%(i+1,newName))

python图像格式转换(bmp、jpg、png)

bmp转png

import os
from PIL import Image
json_dir = r"D:\BMP2PNG"
label_names = os.listdir(json_dir)
label_dir = []
for filename in label_names:
    label_dir.append(os.path.join(json_dir,filename))

for i,filename in enumerate(label_dir):

    im = Image.open(filename)  # open ppm file

    newname = label_names[i].split('.')[0] + '.png'  # new name for png file
    im.save(os.path.join(json_dir,newname))

bmp转jpg

import os
from PIL import Image
json_dir = r"D:\BMP2JPG"
label_names = os.listdir(json_dir)
label_dir = []
for filename in label_names:
    label_dir.append(os.path.join(json_dir,filename))

for i,filename in enumerate(label_dir):

    im = Image.open(filename)  # open ppm file

    newname = label_names[i].split('.')[0] + '.jpg'  # new name for png file
    im.save(os.path.join(json_dir,newname))

遍历文件夹下包含子文件夹中的所有bmp转png

import os
from PIL import Image
import tqdm

def bmp2png(file_dir):
    for root, dirs, files in os.walk(file_dir):  # 获取所有文件
        # for file in files:  # 遍历所有文件名
        for idx,file in enumerate(tqdm.tqdm(files)):
            if os.path.splitext(file)[1] == '.bmp':   # 指定尾缀  ***重要***
                im = Image.open(os.path.join(root, file))  # open img file
                newname = file.split('.')[0] + '.png'  # new name for png file
                im.save(os.path.join(root, newname))  # 转为png

bmp2png(r"D:\数据集\20221105-18")

遍历文件夹下包含子文件夹中的所有bmp重命名为png

import os
from PIL import Image
import tqdm

def bmp2png(file_dir):
    for root, dirs, files in os.walk(file_dir):  # 获取所有文件
        # for file in files:  # 遍历所有文件名
        for idx,file in enumerate(tqdm.tqdm(files)):
            if os.path.splitext(file)[1] == '.bmp':   # 指定尾缀  ***重要***
                newname = file.split('.')[0] + '.png'  # new name for png file
                if(os.path.exists(os.path.join(root, newname))):
                    os.remove(os.path.join(root, newname))
                os.rename(os.path.join(root, file),os.path.join(root, newname))
                print(os.path.join(root, file))

bmp2png(r"D:\PUCP数据集\20221105-18")

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

原文地址:https://blog.csdn.net/qq_36563273/article/details/110000276