본문 바로가기

정리된 글/코딩

heic 확장자 변환

반응형

 

 여행사진을 종종 블로그에 올리고있다.

그럴때면 한가지 문제가 있는데, 나에게 사진을 제공하는 민멍이의 휴대폰이 아이폰이라는것.

아이폰으로 찍은 사진은 확장자가 heic인 것이 기본 설정이다.

문제는 이 heic는 블로그나 다른 업로드에 사용하지 못하는 경우가 더러 있다는것.

 

heic가 뭔데?

 HEIC(High Efficiency Image Container)는 애플이 개발한 고효율 이미지 포맷이다.

고효율이라는것은 즉, 이미지의 용량에 초점이 맞춰져있다.

기본적으로 화질도 괜찮지만, 같은 화질에서 일반적인 jpeg같은것보다 용량이 훨씬 적다는 특징이 있다.

이렇게만 보면 좋지만... 당연히 공짜는 없는 것.

heic의 호환성이 떨어지기에 jpeg만 취급하는 몇몇 플랫폼에서는 이미지를 사용할 수 없는 이상한 단점도 함께 갖고있다.

 

 

heic → jpeg 확장자 변경하기

 

우선 작업의 목표를 확장자 변경 및 파일 생성 시간으로 이름을 변경하는 것으로 잡았다.

python으로는 아래와 같이 간단한 코드로 이미지의 형태를 변경해줄 수 있다.

pip install pillow pillow-heif

import os
import time
from PIL import Image
from pillow_heif import register_heif_opener

# HEIC 포맷을 지원하도록 설정
register_heif_opener()

# 현재 디렉터리의 모든 HEIC 파일 찾기
for filename in os.listdir():
    if filename.lower().endswith(".heic"):
        # 파일 생성 시간 가져오기
        created_time = os.path.getctime(filename)
        formatted_time = time.strftime("%Y%m%d_%H%M%S", time.localtime(created_time))
        
        # 새로운 파일명
        new_filename = f"{formatted_time}.jpg"

        # HEIC -> JPEG 변환
        img = Image.open(filename)
        img.convert("RGB").save(new_filename, "JPEG", quality=95)

        print(f"{filename} → {new_filename} 변환 완료")

 

다만... python 인터프리터가 없는 환경에서 작업을 할때도 제법 많은지라,

지금은 python없이 이미지를 변환할 수 있는 다른 방법이 필요하다.

 

 


 

heic → jpeg 확장자 변경하기(python 없이)

 

ImageMagick라는 모듈을 사용해야 한다고 한다. 먼저, 이걸 설치해보자.

 

설치할때 반드시 이 옵션을 체크해야 한다.

@echo off
setlocal enabledelayedexpansion

:: 현재 날짜와 시간 가져오기
for /f %%a in ('wmic os get LocalDateTime ^| find "."') do set datetime=%%a
set "basedate=!datetime:~0,8!_!datetime:~8,6!"

set /a count=0

:: .heic 및 .heif 파일 모두 처리
for %%f in (*.heic *.heif) do (
    echo.
    echo ▶ 변환 중: %%f

    set /a count+=1
    set "filename=!basedate!_!count!.jpg"

    magick "%%f" "!filename!"
    if exist "!filename!" (
        echo ✔ 저장 완료: !filename!
    ) else (
        echo ❌ 변환 실패: %%f
    )
)

echo.
echo 🔚 모든 변환 완료!
pause

 

 

 

 

 

결과

 

현시각으로 이름이 바뀌는것을 볼 수 있다.

 

 

 

 

반응형