Python에서 OpenCV를 사용하여 PNG를 WebP로 변환하고 이미지 압축 하기

OpenCV는 이미지 처리 및 컴퓨터 비전 작업에 사용되는 인기 있는 오픈 소스 컴퓨터 비전 라이브러리이다. 이미지 처리, 비디오 분석, 물체 감지 등 다양한 기능을 갖추고 있다. 이 글에서는 Python에서 OpenCV를 사용하여 PNG 이미지를 WebP 형식으로 변환하는 방법에 대해 설명한다.

OpenCV 설치

시작하려면 컴퓨터에 OpenCV를 설치해야 한다. 

pip install opencv-python

PNG 이미지 로드

PNG 이미지를 WebP 형식으로 변환하려면 먼저 PNG 이미지를 로드해야 한다. 이를 위해 OpenCV 라이브러리의 cv2.imread() 메서드를 사용한다. 이 메서드는 이미지 파일의 경로를 인수로 받아 이미지를 행렬로 반환한다.

import cv2

# Load the PNG image
img = cv2.imread('image.png')

PNG 이미지 압축하기

PNG 이미지를 로드했으면 이제 WebP 형식으로 변환하기 전에 이미지를 압축할 수 있다. 이미지를 압축하기 위해 OpenCV 라이브러리의 cv2.imencode() 메서드를 사용한다. 이 메서드는 이미지 행렬, 이미지 형식, 매개변수 목록을 인자로 받아 압축된 이미지를 튜플 형태로 반환한다.

# Compress the PNG image
result, encimg = cv2.imencode('.webp', img, [cv2.IMWRITE_WEBP_QUALITY, 90])

위 코드에서는 cv2.IMWRITE_WEBP_QUALITY 파라미터를 사용하여 WebP 이미지의 품질을 설정하고 있다. 값 90은 이미지의 품질을 90%로 설정한다는 것을 나타낸다.

압축된 WebP 이미지 저장

PNG 이미지를 압축했으면 이제 WebP 형식으로 저장할 수 있다. 

# Save the compressed WebP image
if result:
    cv2.imwrite('compressed_image.webp', encimg)
    print("Image compressed and saved successfully")
else:
    print("Error while compressing the image")

위 코드에서는 cv2.imencode() 메서드의 결과를 확인하여 결과가 True이면 cv2.imwrite() 메서드를 사용하여 압축된 WebP 이미지를 저장한다. 결과가 False이면 오류 메시지를 출력한다.

결론

이 글에서는 파이썬에서 OpenCV를 사용하여 PNG 이미지를 WebP 형식으로 변환하는 방법에 대해 설명했다. 또한 WebP 형식으로 변환하기 전에 PNG 이미지를 압축하는 방법에 대해서도 설명했다. 이 단계를 통해 Python에서 PNG 이미지를 WebP 형식으로 쉽게 변환하고 압축할 수 있다.

© Copyright 2023 CLONE CODING