목차
개요
WEBP는 구글에서 만든 이미지 파일로 상대적으로 고압축을 지원하는 이미지 파일이다. 사진 크기에 따라 다른 결과를 보이긴 하지만, JPG, PNG 등의 확장자를 WEBP 변환시 30%가량 절감되는 효과를 보인다.
구글에서 만든 만큼 페이지 로딩 속도를 빠르게 하고 트레픽을 절감할 수 있어, 워드프레스 등 개인 서버를 운영하는 사람들에게는 널리 알려진 파일 포멧이다. 그러나, 일부 OS나 소프트웨어에서 지원을 안하는 경우가 있어 아직 jpg나 png를 완전히 대체하진 못하고 있다.
(대표적인 예로, PPT 삽입 기능에서 이미지 파일로 인식하지 않는다. 다만, “그림 파일 → 모든 파일”로 변경 후 삽입하면, 그림 파일로 인식 된다.)
아쉬운 부분이 없지는 않으나 장점이 확연한 만큼, 장기 보관 파일이나, 단순 확인용 이미지 등, 경우에 따라 webp로 변경하여 활용하면 도움이 될 수 있다.
파이썬으로 이미지 파일 포멧 변경하기
WEBP 파일 포멧 변환은 소프트웨어(꿀뷰 등)나 웹앱(대표적으로 convertio.co등)에서도 가능하지만 선택지가 많지는 않으며, 대량으로 변환하기에는 하나씩만 변환을 해야하거나, 속도가 느린 등의 불편함이 있다.
본인이 파이썬을 활용할 줄 안다면 간단한 코드 작성 만으로도 혹시 모를 개인 정보의 유출을 걱정할 필요가 없으며, 훨씬 빠른 속도로 변환이 가능하다.
본 글은 WEBP로의 변환을 기준으로 작성하였으나, 반대로의 사용도 확장자의 위치만 바꿔주는 방법으로 사용이 가능하다. (WEBP ↔ JPG ↔ PNG)
Pillow 패키지 설치
이미지 포멧 변경은 pillow 패키지로 변경이 가능하다.
설치가 되어있지 않다면, 아래 명령어로 설치하도록 하자.
pip install pillow
Pillow 패키지 기본1 (jpg to webp 변환)
필로우 패키지의 기본적인 사용법은 아래와 같다.
from PIL import Image
im = Image.open('파일이름.jpg').convert('RGB')
im.save('파일이름.webp', 'webp', quality=90)
참고로, quality는 결과물의 품질을 조정하는 값이다.
원본의 사이즈와 품질, 압축 수준에 따라 다르겠으나, 품질은 변화가 거의 없으면서도 용량은 60% 이상까지도 줄어들기도 한다.
각자 케이스에 따라 적절히 조정하도록 한다.
Pillow 패키지 기본2 (png to webp 변환)
png 파일 변환도 동일한 방법으로 가능하다.
앞서도 언급했듯이 확장자의 jpg 부분만 png로 바꿔주면 된다.
from PIL import Image
im = Image.open('파일이름.png').convert('RGB')
im.save('파일이름.webp', 'webp', quality=90)
다수 파일 변환하기
다음은 패키지의 응용 예시를 간단히 소개하고자 한다.
from PIL import Image
import os
file_names = os.listdir()
convert_files = []
print(file_names)
for a in file_names:
if '.jpg' in a or '.JPG' in a:
convert_files.append(a)
print(convert_files)
for b in convert_files:
im = Image.open(b).convert('RGB')
im.save(b.replace('.jpg','.webp'), 'webp', quality=90)
for c in convert_files:
if os.path.exists(c):
os.remove(c)
print(f"Deleted the original file: {c}")
os 패키지를 이용하여 폴더의 jpg 파일을 전부 불러 온 후, webp로 변환. 이후에는 원본 파일을 삭제되도록 하였다.
이 밖에도, input값을 받아 경로를 정하거나, 다양한 확장자를 변환하도록 할 수도 있겠다.
각자의 사정에 맞게 수정해서 사용하도록 하자.