본문 바로가기
코딩 연습

썸네일 이미지 만들기 용량 줄이기(with python)

by good4me 2023. 12. 10.

goodthings4me.tistory.com

썸네일 이미지 만들기

 

파이썬 썸네일 이미지 만들기, 썸네일 이미지 용량 줄이기 코드를 연습하다가 작성해서 올려봅니다. 썸네일 이미지 용량 줄이기는 jpg 파일 저장 시 quality 100, 80, 60, 40, 20, 10으로 각각 저장합니다.

 

썸네일 이미지 만들기  및 썸네일 용량 줄이기

웹 사이트에 글 작성 시 중요한 이미지가 아닌 경우, 웹 서버 용량이나 트래픽을 고려하여 원본 이미지를 필요한 크기로 리사이징할 때가 있는데,

 

 

  • 가급적 jpg 포맷 사용으로 하고(quality 60%~80% 적당),
  • 만일 글자가 많은 이미지이면 png 포맷을 사용하며,
  • 이미지의 정보인 메타데이터(exif)는 제거하는 것이 좋다고 합니다.

파이썬 라이브러리 requests로 인터넷에 있는 이미지를 다운로드하고, pillow와 pilkit을 활용하여 그 이미지를 jpg, png 썸네일 이미지로 만들고,

 

JPG 이미지 저장 시 썸네일 이미지 용량 줄이기 위해 quality 100, 80, 60, 40, 20, 10으로 설정하여 각각 썸네일 이미지를 생성하는 코드입니다.

 

파이썬 이미지 처리 라이브러리는 pillow와 pilkit을 사용하였고, 각 설치 명령은 다음과 같습니다.

pip install pillow
pip install pilkit

 

 

▶ 이미지를 다운로드 후 썸네일 이미지로 만들고, 썸네일 이미지 용량도 줄이는 코드

 

 

IT, 전자제품 선물

 

 

import requests
from PIL import Image
from pilkit.processors import Thumbnail

img_lib = requests.get('https://cdn.pixabay.com/photo/2012/03/01/00/55/flowers-19830_1280.jpg').content
path_file_name = './image/'
with open (path_file_name + 'flower.jpg', 'wb') as f:
    f.write(img_lib)


flower_image = Image.open(path_file_name + 'flower.jpg')
process = Thumbnail(width=300,)  # 인스턴스 생성 (width= , height= )
thumb_image = process.process(flower_image)
thumb_image.save(path_file_name + 'thumb-300.png')
for q in (100, 80, 60, 40, 20, 10):
    thumb_image.save(path_file_name + f'thumb-{q}.jpg', quality=q)

 

  • requests 이용하여 이미지 다운로드 (pixabay.com 이미지를 1개 대상으로 테스트)
  • Image.open() 함수로 이미지 객체 생성 (flower_image)
  • pilkit Thumbnail로 이미지 처리 인스턴스 생성 (process) 후 다운로드 이미지 썸네일 만들기
  • 썸네일 이미지 png 포맷 저장, png 포맷은 quality 속성 사용하여 이미지 용량 줄이기

 

 

실행 결과

 

 

 

이미지 썸네일 만들기 결과
이미지 썸네일 만들기 결과

 

 

댓글