DASHBOARD APP 개발/Streamlit Library

Streamlit 기본 lib : Web 화면에 이미지/동영상/음악 파일 보여주기

신강희 2024. 5. 7. 15:08
728x90

<Web 화면에 이미지/동영상/음악 파일 보여주기>

# 기본적으로 모든 코드들은

def main() :
if __name__ == '__main__' :
    main()

ㄴ 이 기본형식 안에서 쓰여저야 실행된다. 혹시 실행이 되지 않을경우 하단에 마무리 코드를 적지 않았는지 확인!

 

# 웹 화면에 실행 확인은 생성한 파일명이나 혹은 연동한 app을 서버로 실행하여야 함.

# 터미널을 cmd로 열어 & streamli lit run 실행시킬서버명칭.py 로 실행후 always rerun 후 확인

 

< app5.py로 작성 >

# import

# 이미지/동영상/음악파일을 화면에 보여주는 방법

import streamlit as st

# 이미지 처리를 위한 라이브러리
from PIL import Image

 

1) image 를 직접 다운받아서 보여주는 방법

def main() :
    # 1. 저장되어있는 이미지 파일을 화면에 표시하는 방법
    img = Image.open('./data/image_03.jpg')

    st.image(img)

    st.image(img, width= 500)

    st.image(img, use_column_width=True)

ㄴ 이미지를 원본 크기로, 500크기로, 화면에 맞추어 세가지로 출력시켜봄

 

# 인터넷 링크로 이미지 열기

# 원하는 이미지를 인터넷에서 찾아 다른브라우저로 열기를 누르고 해당 url 주소를 그대로 입력

# 다만 해당 이미지를 배포한 곳에서 이미지를 네려버릴경우 우리도 자동으로 이미지가 없어져버리기 때문에 1번 방법으로 실행하는것이 좋음

# 2. 인터넷상에 있는 이미지를 화면에 표시하는 방법
    #    인터넷상의 이미지 : URL 이 있다!!

    st.image(url)

 

# 동영상

ㄴ 이미지와 동일하게 다운받아서 폴더안에 복사

 # 3. 동영상 파일
    video_file = open('./data/video1.mp4', 'rb')
    st.video(video_file)

'rb'는 파일을 바이너리 읽기 모드로 열겠다는 의미로, 여기서 'r'은 읽기를 의미하고, 'b'는 바이너리 모드를 의미한다.

ㄴ 바이너리 모드는 텍스트가 아닌 데이터를 읽을 때 사용되고, 'rb' 모드로 파일을 열 때는 텍스트 파일이든 바이너리 파일이든 상관없이 파일의 내용을 읽을 수 있다. 영상이나 오디오를 읽을때는 꼭 사용!

 

# 오디오

ㄴ 동일하게 다운 복사

# 4. 오디오 파일
    audio_file = open('./data/song.mp3', 'rb')
    st.audio(audio_file.read(), format='audio/mp3')

 

### app5.py 전체 코드 ###

# 이미지/동영상/음악파일을 화면에 보여주는 방법

import streamlit as st

# 이미지 처리를 위한 라이브러리
from PIL import Image

def main() :
    # 1. 저장되어있는 이미지 파일을 화면에 표시하는 방법
    img = Image.open('./data/image_03.jpg')

    st.image(img)

    st.image(img, width= 500)

    st.image(img, use_column_width=True)

    # 2. 인터넷상에 있는 이미지를 화면에 표시하는 방법
    #    인터넷상의 이미지 : URL 이 있다!!

    st.image(url)

    # 3. 동영상 파일
    video_file = open('./data/video1.mp4', 'rb')
    st.video(video_file)

    # 4. 오디오 파일
    audio_file = open('./data/song.mp3', 'rb')
    st.audio(audio_file.read(), format='audio/mp3')

if __name__== '__main__' :
    main()

 

다음 게시글로 계속

반응형