翼度科技»论坛 编程开发 python 查看内容

『玩转Streamlit』--图像与媒体组件

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
Streamlit中的图像与媒体组件,主要是st.image、st.audio和st.video。
它们是专为在Streamlit Web应用程序中嵌入和展示多媒体内容而设计的,这些组件不仅丰富了应用程序的呈现形式,还极大地提升了用户体验和互动性。
1. st.image

st.image函数用于在Streamlit应用程序中展示图像内容,增强视觉呈现效果。
比如,在数据可视化的场景中,通过st.image展示数据分析结果,如柱状图、折线图等;
在项目展示时,也可以通过在项目中嵌入产品图片、示意图等,提升用户理解。
它的主要参数有:
名称类型说明imagenumpy.ndarray / [numpy.ndarray] / BytesIO / str / [str]要显示的图像,也可以指定一个图像URL或URL列表captionstr/[str]图像标题,如果显示多幅图像,应当是字符串列表widthint / None图像宽度,None表示使用图像自身宽度clampbool是否将图像的像素值压缩到有效域(0~255),仅对字节数组图像有效channels"RGB" / "BGR"图像通道类型output_format"JPEG" / "PNG" / "auto"图像格式use_container_widthbool如果设置为True,则使用列宽作为图像宽度1.1. 使用示例

展示本地图像文件,通过image参数接受PIL图像对象,caption参数为图像添加标题,
width参数设置了图像的显示宽度。
  1. import streamlit as st
  2. from PIL import Image
  3. # 读取本地图像文件
  4. image = Image.open("path/to/your/image.jpg")
  5. # 使用st.image展示图像,并设置标题和宽度
  6. st.image(image, caption="这是一张本地图片", width=300)
复制代码

展示URL图像,并使用use_column_width参数使图像宽度自适应Streamlit列的宽度。
  1. # 图像URL
  2. image_url = "http://xxx.com/xxx.jpeg"
  3. # 使用st.image展示URL图像,并设置使用列宽
  4. st.image(
  5.     image_url,
  6.     use_column_width=True,
  7.     caption="这是一张网络图片",
  8. )
复制代码

图片的宽度会随着浏览器窗口的大小自适应变化。
2. st.audio

st.audio函数用于在Streamlit应用程序中嵌入音频内容,为数据分析结果添加声音效果,增强表现力。
它的主要参数有:
名称类型说明datastr / bytes / BytesIO / numpy.ndarray / file要播放的音频数据,可以是字节码流、numpy.ndarray或打开的文件formatstr音频文件的MIME类型,如'audio/ogg'、'audio/mp3'等start_timeint / float / timedelta / str / None指定音频播放的起始时间sample_rateint / None音频的采样率,播放音频时,通常不需要直接设置这个参数end_timeint / float / timedelta / str / None指定音频播放的结束时间loopbool是否循环播放音频autoplaybool是否自动播放音频2.1. 使用示例

播放本地音频文件,autoplay参数设置为True,使音频自动播放。
  1. import streamlit as st
  2. # 打开本地音频文件
  3. audio_file = open("path/to/your/audio.mp3", "rb")
  4. audio_bytes = audio_file.read()
  5. # 使用st.audio播放音频,并自动播放
  6. st.audio(
  7.     audio_bytes,
  8.     format="audio/mp3",
  9.     autoplay=True,
  10. )
复制代码

运行之后会自动播放。
和st.image一样,音频也可以传入URL,直接播放在线的音频。
3. st.video

st.video函数用于在Streamlit应用程序中嵌入视频内容,通过视频展示分析结果的特点或分析过程。
它的主要参数有:
名称类型说明datastr / bytes / BytesIO / numpy.ndarray / file要播放的视频数据,可以是URL字符串、字节码流、numpy.ndarray或打开的文件formatstr视频文件的MIME类型,如'video/mp4',默认值为'video/mp4'start_timeint / float / timedelta / str / None视频开始播放的时间subtitlesstr / bytes / Path / io.BytesIO / dict视频字幕数据end_timeint / float / timedelta / str / None视频结束播放的时间loopbool是否循环播放视频autoplaybool是否自动播放视频mutedbool是否静音播放3.1. 使用示例

播放本地视频文件, 通过start_time和end_time参数设置了视频播放开始和结束的时间(秒)。
  1. import streamlit as st
  2. # 打开本地视频文件
  3. video_file = open('path/to/your/video.mp4', 'rb')
  4. video_bytes = video_file.read()
  5. # 使用st.video播放视频,并设置标题和开始时间
  6. st.video(
  7.     video_bytes,
  8.     format="video/mp4",
  9.     start_time=5,
  10.     end_time=10,
  11. )
复制代码
运行之后,视频加载后停在5s的位置,点击播放,播放到10s时自动停止。

4. 总结

总之,st.image、st.audio和st.video这三个组件共同构成了Streamlit中强大的多媒体展示工具集。
它们各自专注于图像、音频和视频的展示与播放,通过丰富的参数设置和灵活的嵌入方式,为开发者提供了极大的便利和创意空间。
无论是构建数据可视化应用、产品展示页面还是在线教育平台,这些组件都能帮助开发者轻松实现多媒体内容的嵌入与呈现。

来源:https://www.cnblogs.com/wang_yb/p/18549720
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具