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