如何以编程方式将文本添加到位图图像? WPF

2023-11-23

我使用 Kinect 传感器通过将视频源设置为位图源来在图像上显示视频源,如下所示。但我的问题是如何向图像/位图添加文本,例如分数计数器,我在下面添加了一张图片来显示我想要实现的目标。

void myKinect_ColorFrameReady(object sender, ColorImageFrameReadyEventArgs e)
        {
            using (ColorImageFrame colorFrame = e.OpenColorImageFrame())
            {

                if (colorFrame == null) return;
                byte[] colorData = new byte[colorFrame.PixelDataLength];
                colorFrame.CopyPixelDataTo(colorData);

                 KinectVideo.Source = BitmapSource.Create(colorFrame.Width, colorFrame.Height, 96, 96,
                    PixelFormats.Bgr32, null, colorData, colorFrame.Width * colorFrame.BytesPerPixel);

            }
        } 

Kinect video feed with overlay text


您可以使用以下方法实现此目的DrawingVisual and DrawingImage课程:

enter image description here

var random = new Random();
var pixels = new byte[256 * 256 * 4];
random.NextBytes(pixels);
BitmapSource bitmapSource = BitmapSource.Create(256, 256, 96, 96, PixelFormats.Pbgra32, null, pixels, 256 * 4);
var visual = new DrawingVisual();
using (DrawingContext drawingContext = visual.RenderOpen())
{
    drawingContext.DrawImage(bitmapSource, new Rect(0, 0, 256, 256));
    drawingContext.DrawText(
        new FormattedText("Hi!", CultureInfo.InvariantCulture, FlowDirection.LeftToRight,
            new Typeface("Segoe UI"), 32, Brushes.Black), new Point(0, 0));
}
var image = new DrawingImage(visual.Drawing);
Image1.Source = image;

不幸的是,您将不得不创建一个新的BitmapSource因为目前我无法直接向其中写入文本。

或者你可以使用WriteableBitmapEx : https://writeablebitmapex.codeplex.com/

  • 使用以下命令从框架创建 WriteableBitmapBitmapFactory (1)
  • 创建另一个 WriteableBitmap 并使用上面的方法(2)在其上绘制文本
  • 将文本位图 (2) 位块传输到框架 (1) 上

结果相同,但方法不同,不确定方法 2 是否更好,因为它很麻烦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以编程方式将文本添加到位图图像? WPF 的相关文章

  • 递归显式模板实例化以导出库的符号

    在我之前的问题中我问过递归显式模板实例化是否可能 https stackoverflow com questions 7395113 is recursive explicit template instantiation possible
  • Web API 复杂参数属性均为 null

    我有一个 Web API 服务调用可以更新用户的首选项 不幸的是 当我从 jQuery ajax 调用中调用此 POST 方法时 请求参数对象的属性始终为 null 或默认值 而不是传入的值 如果我使用 REST 客户端调用相同的方法 我使
  • 有了private修饰符,为什么可以直接访问其他对象中的成员呢?

    我有以下代码 class A private int x public A x 90 A A a1 A a2 a1 x 10 a2 x 20 int getX return this gt x 我知道代码可能很奇怪 但我不明白为什么a1 a
  • ctypes.ArgumentError:不知道如何转换参数

    我在C库中定义了一个函数 如下所示 int Test char str1 int id1 char str2 float val float ls 我想在Python中使用它 所以我编写了以下Python代码 str1 a str2 b i
  • WPF 中可选择的 TextBlock 或带有格式化文本的 TextBox

    我遇到一种情况 我需要显示格式化文本 正常 粗体 突出显示 并且还应该是可选择的 以便用户可以复制文本 我使用了文本块 我可以使用内联内容流元素应用多种格式 但不幸的是它的文本不可选择 虽然文本框允许选择文本并复制到剪贴板 但它不允许我设置
  • 将私有部分保留在 C++ 标头之外:纯虚拟基类与 pimpl

    我最近从 Java 和 Ruby 切换回 C 令我惊讶的是 当我更改私有方法的方法签名时 我必须重新编译使用公共接口的文件 因为私有部分也位于 h 文件中 我很快想出了一个解决方案 我想这对于 Java 程序员来说是典型的 接口 纯虚拟基类
  • 在 C# 中给定周数和年份,计算一周的开始和结束日期(基于 ISO 规范)

    我需要生成一份报告 显示一年中的 52 周 或某些年份的 53 周 及其开始日期和结束日期 有一个 ISO 规范可以做到这一点 但看起来非常复杂 我希望有人知道在 C 或 Visual Basic 中执行此操作的方法 实际上适用于 Visu
  • 使用 openssl 库获取 x509 证书哈希

    我目前正在开发一个应用程序 它使用 openssl 库 libcrypto 来生成证书 现在我必须获取现有证书的哈希值 当我使用终端时 我可以使用以下命令生成哈希值 openssl x509 hash in cert pem noout 输
  • 在浏览器中测试wcf服务

    我无法在浏览器中调用基本的 wcf web 方法 即使使用
  • 向量和常量

    考虑一下这个 void f vector
  • OpenCV:处理每一帧

    我想使用 OpenCV 编写一个跨平台应用程序进行视频捕获 在所有示例中 我发现来自相机的帧是使用抓取功能进行处理并等待一段时间 我想处理序列中的每一帧 我想定义自己的回调函数 每次当一个新帧准备好处理时都会执行该函数 例如直播对于 Win
  • 如何在 ASP.NET MVC 中获取参数数组作为 GET / POST?

    如何最好地获取数组 item gt value 对作为 GET POST 参数 在 PHP 中 我可以这样做 网址 这得到的参数为 Array a gt Array one gt 100 two gt 200 有什么方法可以在 ASP NE
  • 创建 PING 程序时限制 ICMP 回显答复

    我正在编写一个多线程 ping 程序 我在每个线程 针对每个 IP 上创建了原始套接字 并使用 sendto 向每个线程发送了 ICMP Echo 请求 然后在每个线程中执行了 receivevfrom 我正在从各种套接字中的 IP 获取消
  • 为什么泛型 IList<> 不继承非泛型 IList

    IList
  • 我使用 tm/mktime 是否错误,如果没有,有解决方法吗?

    我认为下面的程序应该输出从公元 1 年到 1970 年每年第一天到 1970 年的秒数 前面是time t在编译它的系统上 CHAR BIT是一个宏 所以我认为你不能只是复制编译后的可执行文件并假设它是正确的 尽管实际上一切都使用 8 位c
  • 在 4.x 内核上的 64 位内存中查找系统调用表

    我正在尝试编写一个简单的内核模块来查找 Linux 中的 sys call table 但遇到了一些麻烦 我在这里找到了 32 位 Linux 的基本指南 https memset wordpress com 2011 03 18 sysc
  • 如何使用 MVVM 更改数据网格或列表视图中的内容

    我有一个 MainWindowViewModel DataContext 它公开不同的 ObservableCollections 带有 INotifyProperty 的 poco 对象的视图模型 从组合框中选择一个值后 我想单击一个加载
  • 为什么 istream/ostream 慢

    于 50 40http channel9 msdn com Events GoingNative 2013 Writing Quick Code in Cpp Quickly http channel9 msdn com Events Go
  • wpf中的图像问题(图像不显示)

    我不明白为什么我无法在 WPF 中显示图像 也许我不小心修改了我的资源文件夹 这就是我没有显示的原因 所以我创建了一个新的 wpf 应用程序 我有这个 当我运行该程序时 我的图片显示为 为什么当我尝试在程序中执行相同的操作时 图像没有显示
  • 文件按文件名模式存在

    我在用 File Exists filepath 我想做的是将其替换为模式 因为文件名的第一部分发生了变化 例如 该文件可以是 01 peach xml 02 peach xml 03 peach xml 如何根据某种搜索模式检查文件是否存

随机推荐

  • 如何对部分路径使用 .htaccess 重定向?

    我必须调整网站上的一些路径 并且需要使用 htaccess 在用户访问旧网址时重定向项目 例如我的旧网址 相对 可能是 old path page1 php old path page2 php old path page3 php etc
  • 如何快速设置栏按钮的图像?

    我正在尝试为栏按钮项目设置一个图像 因为我有一个像这样的图像 分辨率为 30 30 但当我将此图像分配给 栏 按钮时 它看起来像 我已经这样分配图像 如果我尝试这种方式 例如为按钮制作 IBOutlet 并以编程方式设置图像this问题和代
  • 在新的材料设计中,是否有一个官方 API 用于在工具栏上居中标题,就像流行的 Android 应用程序一样?

    背景 过去 Google 总是显示工具栏以使标题左对齐 https material io develop android components app bar layout 然而 最近 似乎在它的一些应用程序上 标题居中 即使它的左右没有
  • 时间:2019-03-17 标签:c#XMLSchemavalidation

    我有一个很好的 XML 文件 如下所示
  • 使用 Launch4j 将 Java 应用程序固定到 Windows 7 任务栏

    我目前正在尝试将 Java 应用程序固定到 Windows 7 任务栏 该应用程序启动时使用Launch4j 程序图标显示正确 但右键单击任务栏上的图标仅显示带有 关闭窗口 条目的上下文菜单 没有用于将应用程序固定到任务栏的菜单条目 将 E
  • 使用js或html5以编程方式记录网页的音频输出?

    有没有办法以编程方式捕获使用 html5 js 或其他内容从网页播放的音频并从中创建 mp3 wav 文件 我知道网络音频 API 但我只能找到有关从麦克风输入录制音频的信息 而不是网页输出的信息 Thanks 您可以使用 Web Audi
  • Vue中JS和SCSS之间的共享变量

    我最近开始使用 Vue js 2 并且我很喜欢单文件组件结构
  • AngularJS orderby 整数字段无法正常工作

    我刚刚拿了最简单的演示http docs angularjs org api ng filter orderBy只需将年龄的值更改为不同的位数即可 它停止按预期工作 它的顺序类似于 字符串 而不是 整数 值 我应该如何更改它 以便它按年龄排
  • 如何突出显示 ggplot 上的方差?

    我不知道该如何提出这个问题 所以我使用了这个方法 我有一个经纬度数据集 下面发布的图像是我想要生成的 这是我的数据集 Latitude Longitude 21 06941667 71 07952778 21 06941667 71 079
  • 以编程方式获取设备的 Android API 级别?

    如何查明我的设备正在使用哪个 API 级别 固件版本为1 6 这是否意味着它使用 API 级别 4 您可以通过系统常量 Build VERSION SDK INT 例如 您可以通过以下方式运行一些需要更新 API 的代码 如果当前设备的 A
  • 如何将字符串的第一个字母大写

    我有一个像这样的字符串 var sentence string the biggest ocean is the Pacific ocean 我希望能够将第一个字母大写t在输入字符串中 使该字符串变为 The biggest ocean i
  • Paypal 可变金额定期付款

    首先 请注意 我已经阅读了许多有关此主题的帖子 但提供的信息对我来说不够或不准确 我正在使用 AngularJS 和 Ruby on Rails 开发一个提供不同服务的网站 用户可以订阅这些服务 一项或多项 并获得 Paypal 定期付款
  • YYYYMMDD 日期格式正则表达式以验证 C# .net 中的日期

    我需要在 C 中使用正则表达式验证日期格式 格式如下 YYYYMMDD 正则表达式不适合此任务 例如 编写匹配有效日期 20080229 但不匹配无效日期 20100229 的正则表达式是很困难的 相反 你应该使用DateTime TryP
  • RNN:Keras框架中LSTM层的return_sequences有什么用

    我在 RNN 工作 我有来自某个网 站的以下代码行 如果您观察到第二层没有 returnSequence 参数 我假设返回序列是强制性的 因为它应该返回序列 您能告诉我为什么没有定义吗 第一层LSTM regressor add LSTM
  • valgrind 条件跳转或移动取决于未初始化的值,这是否表明内存泄漏?

    我在代码中面临内存泄漏问题 在运行时 堆继续增加到最大值 我需要重新启动服务 我运行 top 命令并看到每当我调用服务中的场景时堆都会增加 我用 valgrind 运行服务 valgrind log file log feb19 txt l
  • DLL 总是有相同的基地址吗?

    我正在研究 Windows 和 DLL 的东西 我对此有一些疑问 我编写了一个简单的程序来加载我自己的 DLL 这个DLL只有简单的函数 加号 减号 这就是问题 如果我加载一些 DLL 例如 text dll 这个DLL总是有相同的基地址吗
  • PHP https 使用 cURL 发布 XML 数据

    我正在尝试使用 PHP 将带有 XML 数据的 HTTPS POST 请求发送到服务器 发送到服务器的任何内容都需要身份验证 因此我将使用 cURL 一些背景信息 XML数据是请求服务器将文件从特定URL上传到其本地存储 使用此 API 的
  • 禁用或启用复选框选中事件上的提交按钮

    我想要这样的东西 但有一点小小的改变 我希望在复选框选中事件上启用或禁用按钮 即当选中复选框时 然后只应启用按钮 否则将被禁用 这应该使用 jQuery 代码而不是 JavaScript 来完成 由于这是 MVC 表单 因此没有表单 ID
  • 使用 javascript 和 regex 验证日期时间

    我正在尝试使用有效的日期时间格式验证文本框 我需要检查 24 小时日期时间格式 所以我将以下文本输入到我的文本框中22 05 2013 11 23 22 但它仍然无法正确验证它 我对正则表达式完全陌生 这是到目前为止我已经尝试过的 test
  • 如何以编程方式将文本添加到位图图像? WPF

    我使用 Kinect 传感器通过将视频源设置为位图源来在图像上显示视频源 如下所示 但我的问题是如何向图像 位图添加文本 例如分数计数器 我在下面添加了一张图片来显示我想要实现的目标 void myKinect ColorFrameRead