Python으로 WEBP 이미지를 PNG로 변환하는 방법
이미지 파일 포맷은 정말 다양합니다. 그중에서도 WEBP는 구글에서 개발한 이미지 포맷으로, 파일 크기를 줄이면서도 품질을 유지할 수 있어 요즘 웹 개발에서 많이 사용됩니다. 하지만 모든 프로그램이나 플랫폼이 WEBP 파일을 지원하지는 않아서, 다른 포맷으로 변환해야 할 때가 있습니다. 이번 글에서는 Python의 강력한 라이브러리인 PIL(Python Imaging Library, Pillow)을 사용해 WEBP 파일을 PNG로 변환
하는 방법을 자세히 설명하겠습니다.
준비물: Pillow 설치
우선, Python에서 이미지를 다루기 위해 Pillow라는 라이브러리가 필요합니다. Pillow는 PIL의 개선된 버전으로, 이미지 처리에 필요한 다양한 기능을 제공합니다. Pillow를 설치하려면 다음 명령어를 실행하세요:
pip install pillow
이제 준비가 끝났습니다. Pillow를 사용해 본격적으로 WEBP 이미지를 PNG로 변환해보겠습니다.
변환 코드 작성
다음은 Python 코드를 작성하고 실행하는 과정을 단계별로 설명하겠습니다.
1. WEBP 이미지 열기
Pillow의 Image.open() 메서드를 사용하면 다양한 포맷의 이미지를 열 수 있습니다. 아래는 icon.webp이라는 파일을 여는 코드입니다:
from PIL import Image
# WEBP 파일 열기
webp_image = Image.open(r"c:\\python\\icon.webp") # 경로 앞에 'r'을 붙여 역슬래시를 처리
여기서 주의할 점은 파일 경로입니다. Windows에서는 경로에 백슬래시(\)를 사용하기 때문에, Python 코드에서는 r"경로" 형식으로 지정하거나, 슬래시(/)를 사용하는 방식으로 작성해야 오류를 방지할 수 있습니다.
2. 이미지 크기 조정
이미지를 변환하기 전에 크기를 조정하고 싶다면, Pillow의 resize() 메서드를 활용하면 됩니다. 아래는 이미지를 128x128 크기로 변경하는 코드입니다:
# 이미지 크기 조정 (128x128)
resized_image = webp_image.resize((128, 128))
resize() 메서드의 매개변수로 원하는 크기를 튜플 (가로, 세로) 형태로 전달하면 됩니다. 이 코드에서는 128픽셀 x 128픽셀 크기로 이미지를 조정했습니다.
3. PNG로 저장하기
마지막으로, 이미지를 PNG 포맷으로 저장합니다. save() 메서드를 사용하면 간단히 저장할 수 있습니다:
# 크기 조정된 이미지를 PNG로 저장
resized_image.save(r"c:\\python\\icon.png", "PNG")
여기서 save() 메서드의 두 번째 매개변수로 파일 형식을 지정합니다. 이 코드에서는 PNG로 저장되도록 설정했습니다. 파일이 저장될 위치와 이름도 첫 번째 매개변수에 명시해야 합니다.
코드 전체 보기
위의 내용을 하나로 합치면 다음과 같은 코드가 완성됩니다:
from PIL import Image
# WEBP 파일 열기
webp_image = Image.open(r"c:\\python\\icon.webp")
# 이미지 크기 조정 (128x128)
resized_image = webp_image.resize((128, 128))
# 크기 조정된 이미지를 PNG로 저장
resized_image.save(r"c:\\python\\icon.png", "PNG")
이 코드를 실행하면 icon.webp 파일이 PNG 포맷으로 변환되어 c:\python\icon.png 경로에 저장됩니다.
Pillow가 제공하는 추가 기능
Pillow는 단순히 이미지를 변환하는 데 그치지 않습니다. 이 라이브러리를 활용하면 다음과 같은 작업도 가능합니다:
- 이미지 자르기: 특정 영역만 선택해서 저장
- 이미지 회전: 원하는 각도로 회전
- 포맷 변환: PNG 외에도 JPEG, BMP, GIF 등 다양한 포맷 지원
- 이미지 필터: 흐림, 선명도 증가 등 다양한 필터 적용
이미지 처리가 필요한 프로젝트라면 Pillow를 꼭 활용해보세요. 간단한 작업부터 고급 기능까지 폭넓게 지원합니다.
마무리
Python과 Pillow를 사용하면 다양한 이미지 포맷을 손쉽게 변환하고 조작할 수 있습니다. 이번 글에서는 WEBP 이미지를 PNG로 변환하는 방법을 중심으로 설명했지만, 다른 포맷 간의 변환도 같은 방식으로 처리할 수 있습니다. 앞으로 이미지 파일을 다루는 일이 있다면, Python과 Pillow를 적극 활용해보세요!