问题标签 [writablebitmap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
49 浏览

uwp - 使用 WritableBitmap 时抛出 ObjectDisposedException

我正在尝试将渲染流转换RenderTargetBitmap为可写位图。我在按钮单击中使用了以下代码并将流转换为位图。如果连续转换位图意味着它会抛出一个ObjectDisposedException.

代码片段

0 投票
0 回答
369 浏览

c# - 将 WriteableBitmap C# WPF 视频流保存到文件

我有一个英特尔实感摄像头,它基于https://github.com/IntelRealSense/librealsense/blob/master/wrappers/csharp/cs-tutorial-2-capture/Window.xaml 在 WPF 图像上显示视频“流”。 CS

每次有新图像时,我都想写一个视频。

当我关闭程序时,我会有一个视频(.avi、mp4..)。我怎样才能做到这一点。我正在考虑使用 EMGUCV 库的 VideoWriter 类。或者有没有更简单的方法?谢谢

0 投票
2 回答
97 浏览

wpf - 如何在 WPF 中按字节 [] 更新 WritableBitmap

BitmapImage 可以通过将 byte[] 设置为 StreamSource 来自动获取 PixelHeight 和 PixelWidth 和 PixelFormat 等。但是 WritableBitmap 不能。我必须将 byte[] 转换为 BitmapImage,获取 PixelHeight 和 PixelWidth 以及 PixelFormat,与现有的 WritableBitmap 进行比较。如果像素改变,新的 WritableBitmap 来更新它,如果没有改变,只是 BitmapImage.CopyPixels 到 WritableBitmap?

我想在我的电脑上显示 100 个远程电脑显示器。和远程电脑可以设置像素质量动态。数据可以通过我的电脑中的 rpc 接收,只是 byte[] 图像。

0 投票
0 回答
291 浏览

c# - 如何修复此错误 - “System.ObjectDisposedException:'无法访问关闭的流。'”

错误是关闭时无法访问内存流。当我尝试将图像控件的上一个图像设置回 Gif 时会发生这种情况。当之前的图像是 gif 时,我将其转换为带有内存流的位图。上一张图片为普通png或jpg时,可以成功显示。

我试图研究如何修复错误。我尝试过的一个解决方案是将图像转换为 byte[] ,但是 gif 并没有像它们被转换为静态图像那样设置动画。

为了显示 gif,我使用了一个名为 WPFAnimatedGif 的 NuGet 包,为了使 Wpf 看起来更好,我使用了 NuGet 包 Materialdesigntheme

这是拖动离开时触发的事件代码

我如何转换它

有关完整代码,请访问这些 Pastebin:

编辑

更新了基于响应的转换函数

0 投票
1 回答
28 浏览

wpf - WritableBitmap:内存分配不匹配 - 如何解决?

在我的程序中,我尝试FormatConvertedBitmap使用.Indexed4WritableBitmap

结果图像的尺寸为 20 * 27 像素。

调色板有 16 种颜色,因此每种颜色都有一个半字节,每个字节带有两个像素。

但是,在内存中,WPF 会在每个像素行的末尾添加一个额外的 DWORD:

WPF WritableBitmap 内存分配

我无法解决这种不匹配的特定像素。


我需要检查哪些 BitmapSource 属性才能计算此图像的正确步幅?

0 投票
0 回答
16 浏览

wpf - WPF - 绑定到 WritableBitmap 的图像控件停止在笔记本电脑上更新?

我们有一个应用程序可以显示从堡盟制造的三个工业相机中抓取的图像(在三个图像控件中)。对于每个相机,(设备)每次获取图像(缓冲区)时,堡盟 SDK 都会引发一个事件。当此事件发生时,应用程序将图像数据(在 UI 线程上)从图像缓冲区复制到绑定到上述图像控件之一的可写位图的后台缓冲区。

VM 公开了三个属性,它们都分配了可写位图,如下所示:

这在多台机器上表现如预期,但在一台机器(笔记本电脑)上,图像控件似乎立即停止渲染。测试时,前两个 Image 控件将显示来自关联相机的单个帧,第三个 Image 控件不会渲染任何内容。

我们已经确认“新缓冲区”事件仍在引发并且复制操作成功。此外,我们似乎并没有抓得太快。(即我们没有观察到 TryLock 在任何时候都返回 false)

注意:我们可以通过从底层图像重复创建新的 BitmapSource 来强制更新 Image 控件,但这毫不奇怪会给 CPU 和 GC 带来不可接受的负载。

我们无法弄清楚是什么导致了这种行为,但假设它与所讨论机器的特定硬件/驱动程序有关。

笔记本电脑上的显示适配器如下:

英特尔(R) Iris(R) Xe 显卡 (27.20.100.8439) NVIDIA GeForce MX350 (27.21.14.5720)

0 投票
2 回答
55 浏览

c# - 如何绘制模拟心电图?

我想创造什么(它不必非常精确,它只是为了娱乐目的):

心电图演示

在此处输入图像描述

心电图图片

心电图图片

我有的:

我有一个服务的 REST API,让我可以查询佩戴脉搏测量设备的人的当前 BPM。因此,我没有指示何时发生炉膛跳动的事件。我必须用给定的 BPM 来计算这个。但这不是问题。

问题:

您将如何绘制线条并使它们在到达右上角时从左到右消失并重置。我在 C# WPF 方面有一些经验,这就是我在那里创建 REST Querying 的原因。绘图部分是否有一些库?有没有一种简单的方法可以手动完成?

我非常感谢任何建议,因为我在互联网上这样一个相当具体的问题上找不到那么多。所以谢谢!

更新: 我得到了一些使用 WritableBitmap 的东西,但它看起来很糟糕。关于如何获得更好的分辨率的任何想法?我已经提高了位图的分辨率,但它看起来仍然很糟糕。是否有某种抗锯齿功能?

演示