[python] 파이썬을 사용한 이미지 압축 기법

이미지는 인터넷에서 빠른 속도로 전송되어야 하지만, 고해상도 이미지의 용량은 크고 대역폭을 많이 차지한다는 문제가 있습니다. 따라서 이미지를 압축하여 용량을 줄이고 전송 시간을 단축하는 것이 중요합니다. 이번 블로그 포스트에서는 파이썬을 사용하여 이미지를 압축하는 기법을 알아보겠습니다.

1. Pillow 라이브러리를 사용한 이미지 압축

Pillow는 파이썬에서 이미지 처리 작업을 수행할 수 있는 강력한 라이브러리입니다. 이미지 압축을 위해 Pillow의 Image 모듈을 사용할 수 있습니다. 다음은 Pillow를 사용하여 이미지를 압축하는 코드의 예입니다.

from PIL import Image

def compress_image(image_path, output_path, quality=80):
    image = Image.open(image_path)
    image.save(output_path, optimize=True, quality=quality)

# 이미지 압축하기
compress_image("input.jpg", "output.jpg", quality=60)

위의 코드에서 compress_image 함수는 이미지 파일의 경로와 압축된 이미지를 저장할 경로, 그리고 압축 품질(0-100 사이)을 인자로 받습니다. quality 값이 클수록 이미지 품질이 높아지지만 용량이 커집니다.

2. OpenCV 라이브러리를 사용한 이미지 압축

OpenCV는 컴퓨터 비전과 이미지 처리 작업을 위한 라이브러리로, 이미지 압축을 위해 사용할 수 있습니다. 다음은 OpenCV를 사용하여 이미지를 압축하는 코드의 예입니다.

import cv2

def compress_image(image_path, output_path, quality=80):
    image = cv2.imread(image_path)
    cv2.imwrite(output_path, image, [cv2.IMWRITE_JPEG_QUALITY, quality])

# 이미지 압축하기
compress_image("input.jpg", "output.jpg", quality=60)

위의 코드에서 compress_image 함수는 이미지 파일의 경로와 압축된 이미지를 저장할 경로, 그리고 압축 품질(0-100 사이)을 인자로 받습니다. quality 값이 클수록 이미지 품질이 높아지지만 용량이 커집니다.

3. 참고 자료

이상으로 파이썬을 사용한 이미지 압축 기법에 대해 알아보았습니다. 이미지 압축은 용량을 줄이고 전송 시간을 단축하는 데 매우 유용한 기술입니다. Pillow와 OpenCV를 사용하여 쉽게 이미지 압축을 구현할 수 있으니, 필요에 따라 적절한 방법을 선택하여 사용하시면 됩니다.