개요
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
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[python] 코드가 실행중일 때, 디버깅 중인지 확인하는 방법 (0) | 2024.07.05 |
---|---|
[Python] Flask - Server 헤더 변경하기 (0) | 2024.07.03 |
[python] "v1.v2.v3.v4" 버전 문자열을 숫자들로 변환하기 (0) | 2024.07.02 |
[Python] 현재 시간대에 대한 OFFSET 시간 (UTC) 구하기 (0) | 2024.06.30 |
[python] dict 객체 복사의 세 가지 방법 : 참조 복사, 얕은 복사, 깊은 복사 (0) | 2024.06.26 |