【Pythonプログラミング】ppm、pgm形式の画像をpng、jpg形式の画像に一括変換する

プロローグ

フォルダー内に異常な画像がある場合、次のコードを使用すると、変換コードの動作に影響を与えることなく、異常な画像をスキップできます。例えば、解凍中に中断が発生して画像が異常になる場合、以下のような画像例が考えられます。
ここに画像の説明を挿入

from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True

文章

使用するライブラリをインポートする

from PIL import Image
import os

フォーマット変換関数を定義する

def batch_convert_images(input_dir, output_dir):
    for filename in os.listdir(input_dir):
        if filename.endswith('.ppm') or filename.endswith('.pgm'):
            img_path = os.path.join(input_dir, filename)
            img = Image.open(img_path)
            new_filename = os.path.splitext(filename)[0] + '.png'
            save_path = os.path.join(output_dir, new_filename)
            img.save(save_path)

画像を読み込むためのパス変数と形式変換後の画像を保存するための変数を定義します

input_dir = 'E:/系统默认/桌面/rgbd_people_unihall/rgb'  # 输入图片所在目录
output_dir = 'E:/系统默认/桌面/rgbd_people_unihall/rgb1'  # 输出图片所在目录

形式変換コードが実行されます

batch_convert_images(input_dir, output_dir)

完全なコード

from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True   # 这两句代码可写可不写,如果自己要转换的文件夹中的图片没有异常,可不写

from PIL import Image
import os

def batch_convert_images(input_dir, output_dir):
    for filename in os.listdir(input_dir):
        if filename.endswith('.ppm') or filename.endswith('.pgm'):
            img_path = os.path.join(input_dir, filename)
            img = Image.open(img_path)
            new_filename = os.path.splitext(filename)[0] + '.png'
            save_path = os.path.join(output_dir, new_filename)
            img.save(save_path)

# 使用示例
input_dir = 'E:/系统默认/桌面/rgbd_people_unihall/rgb'  # 输入图片所在目录
output_dir = 'E:/系统默认/桌面/rgbd_people_unihall/rgb1'  # 输出图片所在目录
batch_convert_images(input_dir, output_dir)

おすすめ

転載: blog.csdn.net/lingchen1906/article/details/131425686