코딩 초보인 나는 식상하지만 하루하루 기술의 발전을 직접 경험하고 놀라움과 기쁨속에 지내고 있다.
오늘은 순전히 나의 필요에 이해 chat gpt에게 질문 했다.
일단 GUI 연습중 우리 아기 사진을 배경으로 이런 저런 작업을 하고 싶다는 생각이 들었다.
내 아이폰 사진을 pc로 옮기는데, 아이폰으로 사진 대부분의 파일이 HEIC로 되어 있었다.
JPG로 변경 해야 하는데 인터넷으로 찾아서 또 이것저것 깔고 하기가 귀찮아서 Chat_GPT 에게 물어봤다.
그랬더니 아래 와 같은 코드 알려줌
파일별이 아니라 전체 폴더에 있는 파일을 모조리 변환하고 싶다고 하니
아래와 같은 코드 생성 ... 와... 코드복사 해서 실행하니 바로 파일 JPG로 변환됨
그리고 HEIC 를 PILLOW에서 객체로 변화 시켜야 한다고 하길래 급 궁금해져서 물어봤다.
나 : heic에서 jpg로 변환하려면 왜 pillow에서 객체로 변화 시켜야해?
Chat GPT :
HEIC 파일 읽기: HEIC는 고효율 이미지 포맷으로, 일반적으로 지원되는 형식이 아닙니다. pillow_heif 라이브러리는 HEIC 파일을 읽어서 이를 파이썬에서 사용할 수 있는 데이터로 변환해 줍니다. 이 데이터를 직접 다루기에는 복잡하기 때문에, 이를 Pillow 객체로 변환하여 더 쉽게 다룰 수 있습니다.
이미지 처리 기능: Pillow는 다양한 이미지 처리 기능을 제공하는 라이브러리로, 이미지를 열고, 조작하고, 저장하는 기능을 갖추고 있습니다. HEIC 데이터를 Pillow 이미지 객체로 변환하면, 이 객체를 통해 다양한 이미지 처리 작업을 수행할 수 있습니다.
형식 변환: Pillow는 다양한 이미지 형식을 지원하며, 이미지 객체를 쉽게 다른 형식으로 변환하여 저장할 수 있습니다. 예를 들어, HEIC 데이터를 JPG 형식으로 저장할 수 있습니다.
편리한 API: Pillow의 API는 직관적이고 사용하기 쉬워서, 이미지 변환 작업을 간단하게 수행할 수 있습니다.
코드 설명
패키지 임포트:
import os: 운영 체제와 상호작용하기 위한 모듈입니다.
from PIL import Image: Pillow 라이브러리에서 Image 클래스를 임포트합니다.
import pillow_heif: pillow-heif 라이브러리를 임포트합니다.
heic_to_jpg 함수 정의:
heif_file = pillow_heif.read_heif(heic_path): HEIC 파일을 읽고 heif_file 객체로 변환합니다.
Image.frombytes(...): HEIC 데이터를 Pillow 이미지 객체로 변환합니다.
image.save(jpg_path, "JPEG"): Pillow 이미지 객체를 JPG 형식으로 저장합니다.