이미지 처리를 위한 라이브러리
from PIL import Image
이때 PIL = Python Image Library 라는 뜻이다
1. 저장되어있는 이미지파일 화면에 표시하는 방법
Streamlit 라이브러리의 image( ) 를 사용하며
파라미터 안에 Image.open( ) 을 넣어 파일경로를 넣어주고 화면에 띄우게 된다
이때 화면크기 조절이 가능하다
img = Image.open('./data/image_03.jpg')
st.image(img)
st.image(img, width = 500)
st.image(img, use_column_width = True)
2. 인터넷에 있는 이미지 화면에 표시하는 방법
인터넷상의 이미지에는 URL주소가 있다
위와 같이 주소부분을 URL주소로 넣어주면 되겠다
이때 그냥 넣어주어도 되고
변수를 만들어 넣어주어도 나오는건 동일하다
st.image('https://i.namu.wiki/i/JBHVazuS08hDQOZSQjSTa-_Wyk0O4pSE3IGNcBBj79TgYC1dQSfl39dnfn8bYdqxQqiP6XHj07RhzTWhIw6D1g.webp')
url = 'https://i.namu.wiki/i/JBHVazuS08hDQOZSQjSTa-_Wyk0O4pSE3IGNcBBj79TgYC1dQSfl39dnfn8bYdqxQqiP6XHj07RhzTWhIw6D1g.webp'
st.image(url)
3. 비디오 동영상
3 - 1. 파일이 있는 영상을 올리는 법
위의 이미지 오픈에서 이미지는 떼고
open( )만을 이용하여 주소부분을 붙이고
이번엔 .video( ) 를 사용하여 올릴 수 있다
video_file = open('./data/video1.mp4', 'rb')
st.video(video_file)
3 - 2. 인터넷의 영상을 올리는 법
video_url = "https://www.example.com/video.mp4"
st.video(video_url)
형식으로 위의 이미지 처럼 동영상의 주소를 넣으면 보통 나오지만
이렇게 재생이 되지 않는 경우도 있는데
특정 사이트나 서비스에서 호스팅되는 동영상 URL이 문제가 되는 경우도 있고
동영상 파일의 포맷 및 인코딩이 스트림릿에서 지원이 안되는 경우도 있고
때로는 네트워크 환경이나 방화벽 설정이 동영상 재생에 영향을 줄 수도 있다
너무 낙심 하지 말고 차라리 저장해서 올리는 방법이나
같은 영상을 다른 주소로도 찾아서 시도해 보자
3 - 3. 유튜브 영상을 올리는 법
유튜브에 공유 버튼을 누르면 주소가 나온다 그것을
위와 다른건 같고 주소 부분만 링크를 넣도록 하자
youtube_url = "https://youtu.be/tNYDJz6wdQ8?si=dTwIPGqqB39oV-bz"
st.video(youtube_url)
잘 올라가는것이 보인다
4. 오디오 음성파일
audio_file = open('./data/song.mp3','rb')
st.audio(audio_file.read(), format='audio/mp3')
위와같이 st.audio( )를 사용 하면 되겠다
st.audio() 함수는 파일의 내용을 읽고 파일 형식을 자동으로 감지할 수 있어
.read( ), format = 'audio/mp3'는 입력하지않아도 재생이 되지만
.read()를 사용하여 파일을 읽는 경우
파일을 미리 읽어들이는 것이므로 큰 파일을 처리할 때 도움이 되며
format= 또한
파일 형식이 명확하지 않을 때 명시적으로 파일 형식을 지정하는 것이 도움이 되기때문에
적지않는것보단 도움이 된다
4 - 2. 인터넷 오디오 음성파일 올리는 법
audio_url = "https://www.example.com/audio.mp3"
st.audio(audio_url)
오디오 파일도 위의 이미지 파일이나 동영상 파일과 마찬가지로
인터넷에서 URL을 통해 읽어올 수 있다
하지만 동영상때와 마찬가지로
코덱이 지원되지 않아 재생이 안되는 경우
인터넷 연결이 원활하지 않을 경우
스트림릿의 버그나 이슈
등의 이유로 재생이 안 될 수도 있으니
그럴땐 동영상때처럼 다른 주소를 찾거나 저장을 하여 올려보도록 하자
'Streamlit' 카테고리의 다른 글
Streamlit - 사이드바, 유저에게 파일 받기 (0) | 2024.04.24 |
---|---|
Streamlit - input / 유저한테 입력 받는 법 (0) | 2024.04.23 |
Streamlit - UI / 버튼, 라디오버튼, 체크박스, 셀렉트박스, 멀티셀렉트, 슬라이더, 익스펜더 (0) | 2024.04.23 |
Streamlit - DataFrame 웹 화면에 띄우기 (0) | 2024.04.23 |
Streamlit - 문장 표시 방법 (0) | 2024.04.23 |