[Python] HEIC to Png (feat. PIL)

롬롬·2023년 7월 4일

아이폰으로 찍은 사진은 png, jpeg가 아닌 heic라는 이미지 확장자를 사용하한다. 아이폰을 통해 직접 데이터 수집을 하는 경우, 이미지 확장자를 png나 jpeg 등으로 변환한 후 딥러닝 모델의 인풋으로 넣어줄 수 있다.

srpark_heic에는 .HEIC 또는 .heic 확장자로 저장되어 있는 이미지들이 존재하고 있고, srpark_png는 png로 변환된 이미지를 저장하기 위한 디렉토리이다.

png로 변환하기 위한 코드는 다음과 같다.

from PIL import Image
from pillow_heif import register_heif_opener
import os

register_heif_opener() # HEIC 파일이 Pillow로 열리도록 함.

path = '/Users/saerom/Desktop' # 파일이 위치한 경로
heic_lst = os.listdir(os.path.join(path, 'srpark_heic')) # 이미지 리스트
heic_lst = [os.path.join(path,'srpark_heic',i) for i in heic_lst] # 리스트 절대경로로 수정

print(heic_lst[0]) # '/Users/saerom/Desktop/srpark_heic/IMG_3259.HEIC'

for i in range(len(heic_lst)):
    img_nm = heic_lst[i].split('/')[-1].split('.')[0] # 'IMG_3259'
    save_path = os.path.join(path, 'srpark_png', img_nm+'.png')

    image = Image.open(heic_lst[i]) # 절대주소로 이미지 로드
    image.convert('RGB').save(save_path) # RGB 변환 후, png로 저장

    if i%10==0:
        print(f'image saved {i}%..')

print('save complete')

위 코드를 실행하면 다음과 같이 출력되며, heic 확장자였던 이미지가 png로 변환되어 저장된다.

profile
🤗🤗🤗

0개의 댓글