From 50aad841a193d27261e5d95a776716177a9ad113 Mon Sep 17 00:00:00 2001 From: tanglong <842690096@qq.com> Date: Mon, 30 Mar 2026 11:10:15 +0800 Subject: [PATCH] s --- sdks/Yztob.AiSports.Sensors.WPF.dll | Bin 0 -> 24576 bytes sdks/Yztob.AiSports.Sensors.WPF.xml | 281 ++++++++++++++++++++++++++++ 2 files changed, 281 insertions(+) create mode 100644 sdks/Yztob.AiSports.Sensors.WPF.dll create mode 100644 sdks/Yztob.AiSports.Sensors.WPF.xml diff --git a/sdks/Yztob.AiSports.Sensors.WPF.dll b/sdks/Yztob.AiSports.Sensors.WPF.dll new file mode 100644 index 0000000000000000000000000000000000000000..0fc430f43a3b18626a2dca56660e3692b68cfdec GIT binary patch literal 24576 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 + + + Yztob.AiSports.Sensors.WPF + + + + + 与转换器 + + + + + + + + + + + 双缓冲区渲染器 + + + + + 获取当前展示的缓冲区 + + + + + 获取渲染宽度 + + + + + 获取渲染高度 + + + + + 初始化渲染器 + + 渲染帧(图像)原始宽度 + 渲染帧(图像)原始高度 + + + + 向缓冲区推送新一帧视频数据 + + 抽帧的帧数据实例 + + + + 向缓冲区推送新一帧视频数据 + + 图像(帧)二进制流数据 + 图像(帧)格式 + + + + 异步方式向缓冲区推送新一帧视频数据 + + 图像(帧)二进制流数据 + 图像(帧)格式 + + + + + 重置渲染大小 + + 新宽度 + 新高度 + + + + 清除当前展示画面,置为黑色 + + + + + + + + 视频预览叠加层绘制事件处理程序 + + 事件源 + 叠加层 + + + + WPF RTSP预览用户控件 + + + RTSPPreview + + + + + 初始化组件 + + + + + 获取或设置相机主机名/IP + + + + + 获取或设置端口号 + + + + + 获取或设置用户名或密码 + + + + + 获取或设置密码 + + + + + 获取或设置是否展示帧序号、帧率 + + + + + 获取当前是否正在播放 + + + + + 获取当前画面与原始帧图像的缩放比例 + + + + + 获取当画面缩放后X轴的偏移量,即黑边大小 + + + + + 获取当画面缩放后X轴的偏移量,即黑边大小 + + + + + 获取或设置视频流拉取帧率 + + + + + 获取或设置抽帧响应,处理的是未解析的原始帧 + + + + + 获取或设置帧图像处理响应 + + + 如果有进一步处理图像的要求,如图像推理检测、截屏保存等需要,可以监听此响应 + 响应为jpeg图像,参数分别为图像宽度、图像高度、图像二制流. + + + + + 获取视频预览的叠加透明层 + + + + + 视频叠加透明层绘制事件 + + 可以利用此事件在窗口绘制日期,提示语等 + + + + 获取或设置计算出的预览宽度 + + + + + 获取或设置计算出的预览高度 + + + + + 启动抽帧/预览 + + + + + 停止预览 + + + + + InitializeComponent + + + + + 视频叠加透明层控件 + + + + + 初始化控件 + + + + + + + + + + + + + + 清空当前叠加层所有绘制 + + + + + 在叠加层上绘制一个圆形 + + 要绘制的圆中心点坐标 + 圆孤大小 + 填充笔刷 + + + + 在叠加层上绘制一个线条 + + 起始点坐标 + 结束点坐标 + 线条笔刷 + 粗细 + + + + 绘制一个多边形 + + 多边形关键点 + 线条笔刷 + 粗细 + + + + GeneratedInternalTypeHelper + + + + + CreateInstance + + + + + GetPropertyValue + + + + + SetPropertyValue + + + + + CreateDelegate + + + + + AddEventHandler + + + +