상세 컨텐츠

본문 제목

python (feat. Chat_GPT)

IT/PYTHON

by mcando 2024. 6. 24. 10:09

본문

요즈음 Chat GPT에 푸욱 빠졌다. 

코딩 초보인 나는  식상하지만 하루하루 기술의 발전을 직접 경험하고 놀라움과 기쁨속에 지내고 있다. 

오늘은 순전히 나의 필요에 이해 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는 직관적이고 사용하기 쉬워서, 이미지 변환 작업을 간단하게 수행할 수 있습니다.

코드 설명

  1. 패키지 임포트:
    • import os: 운영 체제와 상호작용하기 위한 모듈입니다.
    • from PIL import Image: Pillow 라이브러리에서 Image 클래스를 임포트합니다.
    • import pillow_heif: pillow-heif 라이브러리를 임포트합니다.
  2. 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 형식으로 저장합니다.
  3. convert_all_heic_in_folder 함수 정의:
    • 지정된 폴더 내의 모든 HEIC 파일을 찾아서 JPG로 변환하는 함수입니다.
    • os.listdir(folder_path): 폴더 내의 모든 파일을 리스트로 가져옵니다.
    • filename.lower().endswith('.heic'): 파일이 .heic 확장자로 끝나는지 확인합니다.
    • os.path.join(folder_path, filename): 파일 경로를 생성합니다.
    • os.path.splitext(filename)[0]: 파일명에서 확장자를 제거합니다.
    • 변환된 파일을 원래 파일명과 동일한 이름의 JPG 파일로 저장합니다.
  4. 폴더 경로 설정:
    • folder_path 변수에 HEIC 파일이 있는 폴더 경로를 설정합니다.
  5. 폴더 내의 모든 HEIC 파일을 변환:
    • convert_all_heic_in_folder(folder_path)를 호출하여 폴더 내의 모든 HEIC 파일을 JPG로 변환합니다.

이 코드를 실행하면 지정한 폴더 내의 모든 HEIC 파일이 JPG 파일로 변환되어 저장됩니다. 필요에 따라 파일 경로를 적절히 수정하여 사용하면 됩니다.

 

________________________

그렇구나! 

 

책으로 읽는거보다 진짜 머리에 쏙쏙 들어온다. 

내 필요에 의해 프로그래밍 생성 코드 물어보고 하나하나 물어보니.... 

앞으로 이런 공부방법을 계속 이어나가야 겠다. 

 

HEIC에서 JPG로 변환한 파일로 GUI 작업을 이것저것 해봐야 겠다. 

오늘은 교보문고앞 스벅이다.  스벅에서 계속 연습좀 하다가 교보문고에서 파이썬 관련한 책을 탐독할 예정이다. 

 

 

 

관련글 더보기