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