본문 바로가기
DataScience/Python

Streamlit 이미지 크기를 조절하기

by leopard4 2022. 12. 22.

서론 :

 

스트림릿 대쉬보드는 데이터 분석용으로 이미지 처리 기능이 내장되어있지 않기때문에

아래와 같은 단계를 따릅니다.

 

steps:

 

1. 먼저 이미지 처리 및 조작 기능을 제공하는 Pillow 라이브러리를 설치합니다. Python 패키지 관리자인 pip를 사용하여 Pillow를 설치할 수 있습니다.

pip install pillow

2. 다음으로 Streamlet 함수의 Pillow에서 필요한 모듈을 가져옵니다.

from PIL import Image

3. 'requests' 라이브러리를 사용하여 URL에서 이미지 데이터를 읽습니다.

import requests

url = 'https://example.com/image.jpg'
response = requests.get(url)
image_data = response.content

4. Image.open 메서드를 사용하여 이미지 데이터를 Image 객체로 엽니다.

image = Image.open(io.BytesIO(image_data))

5. 크기 조정 방법을 사용하여 이미지 크기를 줄입니다.

새 크기를 정수의 튜플로 지정할 수 있으며 resampling 인수를 사용하여 리샘플링 방법을 지정할 수도 있습니다.

image = image.resize((128, 128), resampling=Image.LANCZOS)
----- 여기까지만 진행해도 사이즈가 조절된 이미지를 얻을수 있습니다.-----
 

 

 

------아래부터는 이해가 가능하신분만 적용하시기 바랍니다.------
6. save 메서드와 io.BytesIO 객체를 사용하여 크기 조정된 이미지를 버퍼에 저장합니다.
import io
buffer = io.BytesIO()
image.save(buffer, format='JPEG')

7. 크기 조정된 이미지를 base64로 인코딩된 문자열로 반환합니다.

return {'resized_image': base64.b64encode(buffer.getvalue()).decode('utf-8')}

이 예에서는 이미지가 JPEG 형식이라고 가정하지만

필요에 따라 다른 이미지 형식을 사용할 수 있습니다.

도움이 되길 바랍니다.