import argparse
from PIL import Image
from pillow_heif import register_heif_opener
import os
def heic_to_jpg(input_folder, output_folder, ext):
    """
    HEIC 파일을 JPG 파일로 변환하는 함수
    Args:
      input_folder: HEIC 파일이 있는 폴더 경로
      output_folder: 변환된 JPG 파일을 저장할 폴더 경로
    """
    for root, _, files in os.walk(input_folder):
        for file in files:
            if file.endswith('.heic'):
                heic_path = os.path.join(root, file)
                jpg_path = os.path.join(output_folder, os.path.splitext(file)[0] + '.' + ext)
                try:
                    with Image.open(heic_path) as img:
                        if ext == "jpg":
                            img.save(jpg_path, 'JPEG')
                        elif ext == "png":
                            img.save(jpg_path, 'PNG')
                        print(f"Converted {heic_path} to {jpg_path}")
                except OSError as e:
                    print(f"Error converting {heic_path}: {e}")
parser = argparse.ArgumentParser()
parser.add_argument('--input', default='', help="input folder")
parser.add_argument('--output', default='', help="output folder")
parser.add_argument('--mode', default='jpg', help="output folder")
args = parser.parse_args()
register_heif_opener()
input_folder = args.input
output_folder = args.input if not args.output else args.output
if args.mode == "jpg" or args.mode == "png":
    heic_to_jpg(input_folder, output_folder, args.mode)
Comments