파이썬/Basic

다양한 이미지 확장자와 확장자 변경하기

코샵 2024. 10. 23. 18:14
반응형

이미지 파일에는 다양한 확장자가 사용됩니다. 각 확장자마다 특징과 장단점이 있기 때문에, 상황에 맞는 적절한 확장자를 선택하는 것이 중요합니다. 이번 포스팅에서는 주요 이미지 확장자들을 살펴보고, Python을 이용하여 이미지 확장자를 변경하는 방법을 알아보겠습니다.

주요 이미지 확장자

  1. JPEG/JPG
    • 가장 널리 사용되는 이미지 형식
    • 사진 이미지에 적합하며, 손실 압축을 지원하여 파일 크기를 줄일 수 있음
    • 투명도 지원 불가
  2. PNG
    • 투명도 지원, 손실 없는 압축 형식
    • 사진 이미지와 그래픽 이미지에 모두 적합
    • 파일 크기가 JPEG보다 크지만 화질이 좋음
  3. GIF
    • 애니메이션 지원
    • 256색 제한으로 사진 이미지에는 부적합하지만, 간단한 그래픽 이미지에는 적합
    • 투명도 지원
  4. BMP
    • 비트맵 이미지 형식
    • 무손실 압축이며, 화질이 좋지만 파일 크기가 큼
    • 투명도 지원 불가
  5. TIFF
    • 무손실 압축이며, 화질이 매우 좋음
    • 파일 크기가 크지만 전문적인 이미지 편집 프로그램에서 많이 사용됨
    • 투명도 지원
  6. WebP
    • Google에서 개발한 이미지 형식
    • 사진 이미지에 적합하며, JPEG보다 작은 파일 크기를 가짐
    • 투명도와 애니메이션 지원

이처럼 각 확장자마다 장단점이 있기 때문에, 용도와 요구사항에 따라 적절한 확장자를 선택해야 합니다.

Python으로 이미지 확장자 변경하기

Python에서 이미지 처리를 위해 PIL (Python Imaging Library) 또는 Pillow 라이브러리를 사용할 수 있습니다. 이 라이브러리를 이용하면 이미지의 확장자를 변경할 수 있습니다.

from PIL import Image
import os

# 이미지 파일 경로
input_image = "example.jpg"
output_image = "example.png"

# 이미지 열기
image = Image.open(input_image)

# 이미지 확장자 변경하여 저장
image.save(output_image)

이 코드에서는 JPG 파일을 열어서 PNG 파일로 저장합니다. Image.save() 메서드를 사용할 때 파일 확장자를 변경하면 됩니다.

확장자를 변경할 때는 이미지 형식이 호환되는지 확인해야 합니다. 예를 들어, JPG 파일을 GIF 파일로 변경하려면 투명도 정보가 손실될 수 있습니다.

또한 디렉토리 내의 모든 이미지 파일의 확장자를 일괄적으로 변경하고 싶다면 다음과 같이 코드를 작성할 수 있습니다:

import os
from PIL import Image

# 입력 디렉토리와 출력 디렉토리 설정
input_dir = "input_images"
output_dir = "output_images"

# 디렉토리 내 파일 목록 가져오기
for filename in os.listdir(input_dir):
    # 이미지 파일인지 확인
    if filename.endswith((".jpg", ".png", ".gif")):
        # 입력 이미지 파일 경로
        input_path = os.path.join(input_dir, filename)

        # 출력 이미지 파일 경로 (확장자 변경)
        output_filename, ext = os.path.splitext(filename)
        output_path = os.path.join(output_dir, f"{output_filename}.png")

        # 이미지 열기 및 PNG 파일로 저장
        image = Image.open(input_path)
        image.save(output_path)

이 코드는 input_images 디렉토리 내의 모든 이미지 파일(.jpg, .png, .gif)을 읽어와 output_images 디렉토리에 PNG 파일로 저장합니다.

이와 같이 Python의 이미지 처리 라이브러리를 활용하면 손쉽게 이미지 파일의 확장자를 변경할 수 있습니다. 사용 목적과 호환성을 고려하여 적절한 확장자를 선택하는 것이 중요합니다.