[python] 이미지 압축과 포멧 변환하기

이미지 압축과 포멧 변환은 웹 개발이나 애플리케이션 개발에서 중요한 작업입니다. 압축은 이미지 파일의 용량을 줄여서 로딩 속도를 개선하고, 포멧 변환은 이미지를 필요한 형식으로 변환하여 다양한 용도로 사용할 수 있게 합니다.

이미지 압축

이미지 압축은 이미지 파일의 크기를 줄여서 데이터 전송 속도를 개선하는 작업입니다. 아래는 Python에서 이미지 압축을 위해 많이 사용되는 라이브러리입니다.

  1. Pillow: Python Imaging Library(이미지 처리를 위한 완벽한 라이브러리)
  2. opencv-python: OpenCV 라이브러리의 Python 바인딩(이미지 처리 및 컴퓨터 비전 작업에 유용)

Pillow를 사용한 예제 코드는 아래와 같습니다:

from PIL import Image

def compress_image(input_image, output_image, quality):
    image = Image.open(input_image)
    image.save(output_image, optimize=True, quality=quality)

compress_image("input.jpg", "output.jpg", 75)

위 코드에서 compress_image 함수는 input_image로 주어진 이미지를 output_image로 압축합니다. quality 매개변수는 이미지의 품질을 나타내며, 값이 높을수록 품질이 좋지만 파일 크기도 커집니다.

이미지 포멧 변환

이미지 포멧 변환은 이미지 파일의 형식을 다른 형식으로 변환하는 작업입니다. 예를 들어, JPEG 이미지를 PNG로 변환하거나, PNG 이미지를 SVG로 변환할 수 있습니다.

이미지 포멧 변환을 위해 Pillow와 opencv-python 라이브러리를 사용할 수 있습니다. 아래는 Pillow를 사용한 예제 코드입니다:

from PIL import Image

def convert_image(input_image, output_image, format):
    image = Image.open(input_image)
    image.save(output_image, format=format)

convert_image("input.jpg", "output.png", "PNG")

위 코드에서 format 매개변수에 변환하고자 하는 이미지 포멧을 지정합니다.

참고 자료

이 글에서는 Python을 사용하여 이미지 압축과 포멧 변환하는 방법을 알아보았습니다. 압축과 포멧 변환은 이미지를 최적화하여 웹 개발이나 애플리케이션에서 효율적으로 사용할 수 있도록 해줍니다. 다양한 라이브러리와 기술을 활용하여 이미지 처리 작업을 개선해보세요.