首页 > 其他分享 >『玩转Streamlit』--图像与媒体组件

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

时间:2024-11-16 19:30:37浏览次数:1  
标签:播放 -- image st video 玩转 图像 Streamlit audio

Streamlit中的图像与媒体组件,主要是st.imagest.audiost.video

它们是专为在Streamlit Web应用程序中嵌入和展示多媒体内容而设计的,这些组件不仅丰富了应用程序的呈现形式,还极大地提升了用户体验和互动性。

1. st.image

st.image函数用于在Streamlit应用程序中展示图像内容,增强视觉呈现效果。

比如,在数据可视化的场景中,通过st.image展示数据分析结果,如柱状图、折线图等;

在项目展示时,也可以通过在项目中嵌入产品图片、示意图等,提升用户理解。

它的主要参数有:

名称 类型 说明
image numpy.ndarray / [numpy.ndarray] / BytesIO / str / [str] 要显示的图像,也可以指定一个图像URL或URL列表
caption str/[str] 图像标题,如果显示多幅图像,应当是字符串列表
width int / None 图像宽度,None表示使用图像自身宽度
clamp bool 是否将图像的像素值压缩到有效域(0~255),仅对字节数组图像有效
channels "RGB" / "BGR" 图像通道类型
output_format "JPEG" / "PNG" / "auto" 图像格式
use_container_width bool 如果设置为True,则使用列宽作为图像宽度

1.1. 使用示例

展示本地图像文件,通过image参数接受PIL图像对象,caption参数为图像添加标题,

width参数设置了图像的显示宽度。

import streamlit as st
from PIL import Image

# 读取本地图像文件
image = Image.open("path/to/your/image.jpg")

# 使用st.image展示图像,并设置标题和宽度
st.image(image, caption="这是一张本地图片", width=300)

展示URL图像,并使用use_column_width参数使图像宽度自适应Streamlit列的宽度。

# 图像URL
image_url = "http://xxx.com/xxx.jpeg"

# 使用st.image展示URL图像,并设置使用列宽
st.image(
    image_url,
    use_column_width=True,
    caption="这是一张网络图片",
)

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

2. st.audio

st.audio函数用于在Streamlit应用程序中嵌入音频内容,为数据分析结果添加声音效果,增强表现力。

它的主要参数有:

名称 类型 说明
data str / bytes / BytesIO / numpy.ndarray / file 要播放的音频数据,可以是字节码流、numpy.ndarray或打开的文件
format str 音频文件的MIME类型,如'audio/ogg'、'audio/mp3'等
start_time int / float / timedelta / str / None 指定音频播放的起始时间
sample_rate int / None 音频的采样率,播放音频时,通常不需要直接设置这个参数
end_time int / float / timedelta / str / None 指定音频播放的结束时间
loop bool 是否循环播放音频
autoplay bool 是否自动播放音频

2.1. 使用示例

播放本地音频文件,autoplay参数设置为True,使音频自动播放。

import streamlit as st

# 打开本地音频文件
audio_file = open("path/to/your/audio.mp3", "rb")
audio_bytes = audio_file.read()

# 使用st.audio播放音频,并自动播放
st.audio(
    audio_bytes,
    format="audio/mp3",
    autoplay=True,
)

运行之后会自动播放。

st.image一样,音频也可以传入URL,直接播放在线的音频。

3. st.video

st.video函数用于在Streamlit应用程序中嵌入视频内容,通过视频展示分析结果的特点或分析过程。

它的主要参数有:

名称 类型 说明
data str / bytes / BytesIO / numpy.ndarray / file 要播放的视频数据,可以是URL字符串、字节码流、numpy.ndarray或打开的文件
format str 视频文件的MIME类型,如'video/mp4',默认值为'video/mp4'
start_time int / float / timedelta / str / None 视频开始播放的时间
subtitles str / bytes / Path / io.BytesIO / dict 视频字幕数据
end_time int / float / timedelta / str / None 视频结束播放的时间
loop bool 是否循环播放视频
autoplay bool 是否自动播放视频
muted bool 是否静音播放

3.1. 使用示例

播放本地视频文件, 通过start_timeend_time参数设置了视频播放开始和结束的时间(秒)。

import streamlit as st

# 打开本地视频文件
video_file = open('path/to/your/video.mp4', 'rb')
video_bytes = video_file.read()

# 使用st.video播放视频,并设置标题和开始时间
st.video(
    video_bytes,
    format="video/mp4",
    start_time=5,
    end_time=10,
)

运行之后,视频加载后停在5s的位置,点击播放,播放到10s时自动停止。

4. 总结

总之,st.imagest.audiost.video这三个组件共同构成了Streamlit中强大的多媒体展示工具集。

它们各自专注于图像、音频和视频的展示与播放,通过丰富的参数设置和灵活的嵌入方式,为开发者提供了极大的便利和创意空间。

无论是构建数据可视化应用、产品展示页面还是在线教育平台,这些组件都能帮助开发者轻松实现多媒体内容的嵌入与呈现。

标签:播放,--,image,st,video,玩转,图像,Streamlit,audio
From: https://www.cnblogs.com/wang_yb/p/18549720

相关文章

  • 20222406 2024-2025-1 《网络与系统攻防技术》实验六实验报告
    202224062024-2025-1《网络与系统攻防技术》实验六实验报告1.实验内容前期渗透:在root权限下进行主机发现、端口扫描、扫系统版本和漏洞操作。多种漏洞利用:包括Vsftpd源码包后门漏洞(21端口)、SambaMS-RPCShell命令注入漏洞(139端口)、JavaRMISERVER命令执行漏洞(109......
  • 识海社区打卡-6
    这场掉回灰名了,本来必然上大分,原因无他-查寝先来查波战绩:c题没过纯属是因为被查寝查了室友也是个不知变通的让查寝记我头上了,byd害我赶回去,本来这题必出看看我最后一发提交错哪了voidsolve(){ intn; cin>>n; if(n%2) { if(n<27) { cout<<-1<<nl; ......
  • 识海社区打卡-5
    839.相似字符串组-力扣(LeetCode)学习打板并查集安照oi-wiki的说法来说的话,并查集就是按照其字面意思,合并与查询,并查集在经过修改后可以支持单个元素的删除、移动;当然学并查集是因为我发现自己连树状数组都有些理解不了,所以先来看点更简单的,还是不能一步跨太大,我承认我是废物......
  • 网络安全涉及的21个热门赛道
    网络安全是当今信息社会中至关重要的领域之一,涵盖了各种不同的赛道和子领域。在这篇文章中,我们将详细描述网络安全的21个热门赛道,以便更好地理解这个关键领域的各个方面。1.零信任安全零信任是一种先进的安全理念,强调不信任任何用户、设备、应用程序或事务,即使是内部的。这种......
  • 【网络安全】身份认证
    1. 身份认证1.1定义身份认证(Authentication)是确认用户身份的过程,确保只有授权的用户才能访问系统或资源。它通常涉及验证用户提供的凭证,如密码、生物特征或其他识别标志。1.2重要性身份认证是信息安全的第一道防线,对于保护数据不被未授权访问至关重要。在数字化时代,随着......
  • 第六章 网络互连与互联网(六):域名和地址
    六、域名和地址Internet地址分为3级,可表示为“网络地址·主机地址·端口地址”的形式。其中,网络和主机地址即 IP地址:端口地址就是 TCP 或UDP地址,用于表示上层进程的服务访问点。TCP/IP网络中的大多数公共应用进程都有专用的端口号。下表列出了主要的专用端口......
  • UEFI 笔记 002 —— PrintLib.h
    https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Library/PrintLib.h//MdePkg\Include\Library\PrintLib.h//--2024-11-16////Thisfunctionissimilarassnprintf_sdefinedinC11.UnicodeSPrint(OUTCHAR16*,INUINTN,INconstCHAR16*......
  • 智能体探秘数据宝库:数据库驱动的智能决策之旅
    一、数据利用数据仓库作为数据源:数据仓库是一个大型的、面向主题的、集成的、非易失的、反映历史变化的数据集合,用于支持管理决策。它存储了大量的结构化数据,这些数据是智能体进行学习和决策的重要基础。智能体可以通过访问数据仓库,获取所需的数据来训练模型、进行预测和决......
  • 新人必知的好用的录屏与直播软件OBS
    下载链接点击下载OBS介绍OBS(OpenBroadcasterSoftware)是一款开源的视频录制和直播软件,广泛用于视频内容的实时流媒体传输。以下是一些关于OBS的基本信息和功能:开源免费:OBS是完全免费的,并且开源,这意味着任何人都可以查看、修改和改进其代码。多平台支持:OBS支持Windows......
  • TikTok Pixel 和 Meta Pixel:广告优化的幕后推手
    随着数字营销的快速发展,广告主如何更精准地触达目标受众并提升广告效果,成为一项重要课题。在这个过程中,TikTokPixel和MetaPixel这样的工具应运而生。它们是如何帮助广告主优化广告效果的?它们对我们的日常网络体验又有怎样的影响?本文将为您解读这两种重要的网页分析工具。什......