프로그래밍/Python

[Python] 품질 설정과 함께 이미지를 JPEG로 저장 방법들

채윤아빠 2024. 7. 4. 14:07

개요

Python에서 이미지를 품질 (Quality)을 지정하여 JPEG 형식으로 저장하는 여러 가지 방법을 정리해 둡니다.


PIL(Python Imaging Library)/Pillow

from PIL import Image

# 이미지 열기
img = Image.open('input.png')

# JPEG로 저장
img.save('output.jpg', format = 'JPEG')

# 품질 설정하여 저장 (1-95)
img.save('output_quality.jpg', 'JPEG', quality=85)

# RGB로 변환 후 저장 (알파 채널이 있는 경우)
img_rgb = img.convert('RGB')
img_rgb.convert('RGB').save('output_rgb.jpg', 'JPEG')
  • 가장 널리 사용되는 이미지 처리 라이브러리
  • 다양한 이미지 처리 기능 제공
  • 메모리 효율적

OpenCV

import cv2

# 이미지 읽기
img = cv2.imread('input.png')

# 기본 저장
cv2.imwrite('output.jpg', img)

# 품질 설정하여 저장 (0-100)
cv2.imwrite('output_quality.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 85])

# BGR에서 RGB로 변환 후 저장
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
cv2.imwrite('output_rgb.jpg', img_rgb)
  • 고성능 이미지/비디오 처리에 적합
  • BGR 형식을 기본으로 사용
  • 컴퓨터 비전 작업에 유용

matplotlib

import matplotlib.pyplot as plt
import matplotlib.image as mpimg

# 이미지 읽기
img = mpimg.imread('input.png')

# 이미지 표시 및 저장
plt.imshow(img)
plt.axis('off')
plt.savefig('output.jpg', format='jpg', dpi=300, bbox_inches='tight')
  • 시각화와 함께 저장 가능
  • 과학적 작업에 적합
  • 다른 방법들에 비해 속도가 느림

imageio

import imageio

# 이미지 읽기
img = imageio.imread('input.png')

# JPEG로 저장
imageio.imwrite('output.jpg', img, format='JPEG')

# 품질 설정하여 저장
imageio.imwrite('output_quality.jpg', img, format='JPEG', quality=85)
  • 간단한 인터페이스
  • 다양한 포맷 지원
  • 메모리 사용량이 높을 수 있음

마무리

어떤 라이브러리를 선택할지는 프로젝트의 요구사항(처리 속도, 메모리 사용량, 필요한 추가 기능 등)에 따라 결정하시면 됩니다.



728x90
반응형