이미지 파일에는 다양한 확장자가 사용됩니다. 각 확장자마다 특징과 장단점이 있기 때문에, 상황에 맞는 적절한 확장자를 선택하는 것이 중요합니다. 이번 포스팅에서는 주요 이미지 확장자들을 살펴보고, Python을 이용하여 이미지 확장자를 변경하는 방법을 알아보겠습니다.
주요 이미지 확장자
- JPEG/JPG
- 가장 널리 사용되는 이미지 형식
- 사진 이미지에 적합하며, 손실 압축을 지원하여 파일 크기를 줄일 수 있음
- 투명도 지원 불가
- PNG
- 투명도 지원, 손실 없는 압축 형식
- 사진 이미지와 그래픽 이미지에 모두 적합
- 파일 크기가 JPEG보다 크지만 화질이 좋음
- GIF
- 애니메이션 지원
- 256색 제한으로 사진 이미지에는 부적합하지만, 간단한 그래픽 이미지에는 적합
- 투명도 지원
- BMP
- 비트맵 이미지 형식
- 무손실 압축이며, 화질이 좋지만 파일 크기가 큼
- 투명도 지원 불가
- TIFF
- 무손실 압축이며, 화질이 매우 좋음
- 파일 크기가 크지만 전문적인 이미지 편집 프로그램에서 많이 사용됨
- 투명도 지원
- 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의 이미지 처리 라이브러리를 활용하면 손쉽게 이미지 파일의 확장자를 변경할 수 있습니다. 사용 목적과 호환성을 고려하여 적절한 확장자를 선택하는 것이 중요합니다.
'파이썬 > Basic' 카테고리의 다른 글
파이썬에서 디자인 패턴 적용하기 (7) | 2024.10.24 |
---|---|
Python 데코레이터 : 정적 메서드부터 데이터 클래스까지 알아보기 (0) | 2024.09.16 |
Python의 데코레이터: 강력한 코드 확장 기능 (0) | 2024.09.15 |
sort와 sorted의 차이점 (0) | 2024.02.15 |
문자열에 원하는 문자를 추가하는 방법 (0) | 2024.02.10 |