【开源项目】WPF 扩展 -- 多画面视频渲染组件

news2024/12/23 7:12:27

目录

1、项目介绍

2、组件集成

2.1 下载地址

2.2 添加依赖

3、使用示例

3.1 启动动画

3.2 视频渲染

3.3 效果展示

4、项目地址

 


1、项目介绍

Com.Gitusme.Net.Extensiones.Wpf 是一款 Wpf 扩展组件。基于.Net Core 3.1 开发,当前是第一个发布版本 1.0.0,包含 启动动画 和 视频渲染 两大重要功能。视频渲染支持平铺模式和画廊模式,支持多画面异步渲染,能有效发挥硬件性能,集成快捷使用方便。免费版仅支持1个画面渲染,多画面渲染诉求,请与作者联系以供技术支持。

2、组件集成

2.1 下载地址

https://www.nuget.org/packages/Com.Gitusme.Net.Extensiones.Wpf

2.2 添加依赖

代码工程中,使用NuGet包管理器,搜索 Com.Gitusme.Net.Extensiones.Wpf 关键字,选择最新版本安装。

18a0def21319453aa6da338ec35f070a.png

3、使用示例

3.1 启动动画

   protected override void OnStartup(StartupEventArgs e)
   {
       // 前提条件:需要删除XAML中的 StartupUri = "MainWindow.xaml"
       this.StartSplashScreen(
           $@"Resources\Images\SplashScreen.png",
          () => {
               // 在这里处理耗时任务或加载后台数据
               Thread.Sleep(3000);
          },
          () => {
               // 加载完成,后进入应用主界面
               MainWindow mainWindow = new MainWindow();
               App.Current.MainWindow = mainWindow;
               mainWindow.Show();
          },
          (ex) => {
               // 加载出错,向用户反馈或记录后台日志
               MessageBox.Show(ex.Message);
          });
   }

3.2 视频渲染

XAML 文件,添加代码:

    <Grid Background="Black">
        <!-- 平铺模式 -->
        <local:VideoContainer Name="videoContainer"
              Layout="Grid" Columns="2" Rows="2" />
        <!-- 画廊模式 -->
        <local:VideoContainer Name="videoContainer"
              Layout="Gallery" Dock="Left" GallerySize="300" />
    </Grid>

C# 代码文件,添加代码:

   // 创建VideoSource
   VideoSource video = new VideoSource();
   // 将VideoSource添加至VideoContainer容器
   videoContainer.Items = new List<VideoSource> { video };
   // 创建Task,更新VideoSource画面
   Task task = new Task((video) =>
   {
       video.Frame = new VideoFrame()
       {
           Data = bytes, // 视频帧数据
           Format = VideoFormat.RGB, // 指定视频格式(默认为YUV格式)
           Width = width, // 视频宽度
           Height = height // 视频高度
       };
   }, video);
   task.Start();

3.3 效果展示

平铺模式

b95ccb549f0142ab94dbbe8e8dc4f1ca.png

画廊模式

eed7094e131d4dde91258758f53037c2.png

4、项目地址

https://github.com/gitusme/Com.Gitusme.Net.Extensiones

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1317983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(3)kylin系统部署weblogic项目

一、jdk迁移 1、拷贝成功后要配置环境变量 vi /etc/profile 将jdk的目录添加进去 2、将jdk安装目录拷贝后权限会发生变化&#xff0c; 要对jdk下bin目录中的所有文件修改权限&#xff1a; chmod x ./* 回车即可 ----------------------------- 环境变量 export …

【漏洞复现】红帆OA iorepsavexml.aspx文件上传漏洞

漏洞描述 广州红帆科技深耕医疗行业20余年,专注医院行政管控,与企业微信、阿里钉钉全方位结合,推出web移动一体化办公解决方案——iOffice20(医微云)。提供行政办公、专业科室应用、决策辅助等信息化工具,采取平台化管理模式,取代医疗机构过往多系统分散式管理,实现医…

Kafka本地安装⭐️(Windows)并测试生产消息以及消费消息的可用性

2023.12.17 天气晴 温度较低 十点半&#xff0c;不是不想起实在是阳光浴太nice了日常三连&#xff0c;喂&#xff0c;刷&#xff0c;肝刷会儿博客&#xff0c;看会儿设计模式冷冷冷 进被窝 刷视频 睡觉看看kafka的本地部署 》》实践》》成功写会儿博客&#xff0c…

Qt for Android 程序编译报错

环境 系统&#xff1a;Ubuntu Qt 版本&#xff1a;Qt5.15.2 JDK版本:jdk-17.0.9 编译错误说明 Qt 创建了一个简单的界面程序&#xff0c;编辑就错误了. 错误信息&#xff1a; Generating Android PackageInput file: /home/xuguijun/Desktop/build-androidTest-Android_Q…

通过 Dropout 增强深度学习模型:对抗过度拟合的策略

一、介绍 Dropout 是深度学习中用于防止过度拟合的正则化技术。这个概念是由 Hinton 等人提出的。在 2012 年的一篇论文中&#xff0c;它已成为神经网络领域的主要技术&#xff0c;特别是在训练深度网络方面。 在追求稳健的深度学习模型的过程中&#xff0c;dropout 不仅作为一…

C语言—每日选择题—Day50

一天一天的更新&#xff0c;也是达到50天了&#xff0c;精选的题有250道&#xff0c;博主累计做了不下500道选择题&#xff0c;最喜欢的题型就是指针和数组之间的计算呀&#xff0c;不知道关注我的小伙伴是不是一直在坚持呢&#xff1f;文末有投票&#xff0c;大家可以投票让博…

GradNorm理解

主要参考这一篇&#xff0c;GradNorm&#xff1a;Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks&#xff0c;梯度归一化_grad norm-CSDN博客 14:20-15:30 提前需要理解的概念 损失函数&#xff0c;衡量ypred与ytruth的差距。 Grad Loss定…

《Linux C编程实战》笔记:文件的移动和删除

本节只有两个函数。 rename函数 #include <stdio.h> int rename (const char *oldpath, const char *newpath); rename会将参数oldpath所指定的文件名称改为参数newpath所指定的文件名称&#xff0c;若newpath所指定的文件已存在&#xff0c;则原文件会被删除&#xf…

Mac安装软件显示文件已损坏处理方法

今天安装软件&#xff0c;突然遇到了文件已损坏&#xff0c;扔到废纸篓的情况&#xff0c;于是搜索了下解决办法&#xff0c;跟大家分享下&#xff0c;希望对你有所帮助 一、检查安全性设置 打开【设置】-【隐私与安全】&#xff0c;下拉找到安全性&#xff0c;将安全性更改为…

深度学习记录--参数与超参数

什么是超参数 在深度学习的神经网络图中&#xff0c;有一堆参数&#xff0c;这些参数分成了普通参数和特殊参数&#xff0c;其中特殊参数往往被称为超参数 超参数(hyper parameters),在某种程度上决定了普通的参数&#xff0c;并且是需要额外给出的 如下图 参数设定 对于超…

半导体设备之外延炉简述

半导体设备对整个半导体行业起着重要的支撑作用。因半导体制造工艺复杂&#xff0c;各个环节需要的设备也不同&#xff0c;从流程工序分类来看&#xff0c;半导体设备主要可分为晶圆制造设备&#xff08;前道工序&#xff09;、封装测试设备&#xff08;后道工序&#xff09;等…

【TB作品】51单片机读取重量和液位,OLED显示

代码打开下载&#xff1a; http://dt4.8tupian.net/2/28880a64b6666.pg3这段代码是为微控制器编写的&#xff0c;可能是基于8051架构&#xff0c;使用Keil C51编译器。该代码结合了OLED显示器、超声波距离传感器和基于HX711的称重传感器的功能。以下是主要组件及其功能的详细说…

常见Appium相关问题及解决方案

问题1&#xff1a;adb检测不到设备 解决&#xff1a; 1.检查手机驱动是否安装&#xff08;win10系统不需要&#xff09;&#xff0c;去官网下载手机驱动或者电脑下载手机助手来辅助安装手机驱动&#xff0c;安装完成后卸载手机助手&#xff08;防止接入手机时抢adb端口造成干…

【Linux】查看目录和更改目录

概览 常见一些目录命令如下&#xff1a; pwd&#xff1a;print working directory的缩写&#xff0c;打印出当前工作目录名 。ls&#xff1a;list的缩写&#xff0c;列出目录内容。file&#xff1a;确定文件类型。less&#xff1a;浏览文件内容。cd&#xff1a;change direct…

低代码发展现状调研和思考

低代码开发是近年来迅速崛起的软件开发方法&#xff0c;让编写应用程序变得更快、更简单。有人说它是美味的膳食&#xff0c;让开发过程高效而满足&#xff0c;但也有人质疑它是垃圾食品&#xff0c;缺乏定制性与深度。你认为低代码到底是美味的膳食还是垃圾食品呢&#xff0c;…

PMP项目管理 - 风险管理

系列文章目录 PMP项目管理 - 质量管理 PMP项目管理 - 采购管理 PMP项目管理 - 资源管理 PMP项目管理 - 风险管理 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in…

easy贪吃蛇

之前承诺给出一个贪吃蛇项目。 1.EasyX库认知 有关EasyX库的相关信息&#xff0c;您可以看一下官方的文档&#xff1a;EasyX官方文档。 这里我做几点总结&#xff1a; EasyX库就和名字一样&#xff0c;可以让用户调用一些简单的函数来绘制图像和几何图形利用EasyX库可以制作…

云渲染技术下的虚拟现实:技术探索与革新思考

虚拟现实&#xff08;含增强现实、混合现实&#xff09;是新一代信息技术的重要前沿方向&#xff0c;是数字经济的重大前瞻领域&#xff0c;将深刻改变人类的生产生活方式&#xff0c;产业发展战略窗口期已然形成。但是虚拟现实想要深入改变影响我们的生活&#xff0c;以下技术…

Linux_Docker图形化工具Portainer如何安装并结合内网穿透实现远程访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 本文主要介绍如何本地安装Portainer并结合内网穿透工具实现任意浏览器远程访问管理界面。Portainer 是一个轻量级…

日志审计、数据库审计以及代码审计三者的区别与重要性

在当今的数字化时代&#xff0c;企业的信息安全和数据保护至关重要。为了确保这些安全&#xff0c;企业需要采取一系列的安全措施&#xff0c;其中包括日志审计、数据库审计和代码审计。尽管这三者都是为了增强企业的安全性&#xff0c;但它们各自的目标和重点却有所不同。 一、…