问题标签 [bitmapsource]

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 投票
2 回答
2954 浏览

wpf - 将 WPF 控件转换为 BitmapSource

这是一个由两部分组成的问题——首先,为什么这段代码不起作用?

当我将图像写入磁盘时,我看到的只是一张黑色图像——我以前做过,没有任何问题,但现在有一些东西在逃避我……我检查了宽度和高度以及缓冲区中的数据MemoryStream 和一切看起来都很好......

这只是一个测试,真正的目标是从 Canvas 视觉图像创建一个 BitmapSource。画布是在代码中使用形状(折线等)绘制的。然后我需要将此 BitmapSource 以大约每秒 60 帧的速率传递给 xaml 中的图像。我注意到如果我创建一个模拟 BitmapSource,Image.Source 正在使用 CachedBitmap,但是每次我更新我的(黑色)位图时它都会重新绑定到我的 BitmapImage。

关于如何以 60fps 在内存中创建 Canvas 并从中创建一个被 Image.Source 视为 CachedBitmap 的 BitmapSource 的建议?

0 投票
1 回答
2620 浏览

wpf - 如何从画笔(例如 DrawingBrush)转换为 BitmapSource?

我有一个带有一些矢量图形的绘图笔。我想将它转换为 BitmapSource 作为将其转换为 Bitmap 的中间步骤。这样做的(最佳)方法是什么?

0 投票
1 回答
3060 浏览

wpf - WPF - 使用 JpegBitmapDecoder 将文件转换为 Byte[] 到 BitmapSource

我需要读取一个 jpg 文件并在图像控件中显示它。以下工作完美:

我的问题是我需要将此图像作为 Byte[] (varbinary(MAX) 保存在数据库中并从那里读取它,而不是像上面那样直接从文件中读取。所以我需要有一个 Byte[] 作为输入到这个函数而不是 URLlink 字符串,或者将 BitmapSource 保存为 Byte[]。我该怎么做?

0 投票
1 回答
7872 浏览

c# - C# WPF BitmapSource 内存泄漏?

我正在开发一个 BlackJack 程序,该程序显示一张 BlackJack 牌桌、纸牌等。计划是它会以自动化策略连续玩数千手牌。

我有一个 PlayerSeat UserControl,它包含一个绑定到 ObservableCollection 的 ItemsControl。此 CardInHand 类包含一个名为 CardImage 的 BitmapSource。当创建实例时,它使用以下代码从资源中加载卡片图像:

问题是,在我运行了大约 500 轮(大约 4000 手或大约 10000 张卡片)之后,我最终遇到了 GDI+ 错误,并且应用程序占用了大约 400MB 的 RAM。这增长很快,并且与已玩过的手数有关。

DeleteObject() 是我在另一个站点上发现的,它说这是从位图中释放资源的最佳方式。它可能会产生很小的影响,但不是我想要的。我也尝试过 Dispose()。

另一个网站说它与 ItemsSource 绑定有关。我去掉了绑定,记忆还在增长。相反,我离开了绑定并删除了生成位图的代码。它玩了 40,000 轮,并没有大幅增长(可能在运行 40 分钟后增加了 20MB)。

ObservableCollection 在每一轮之后都会被清除()。我尝试将集合、CardInHand 和 BitmapSource 属性归零,但无济于事。

如何让这些图像显示在屏幕上,同时确保它们的对象在不再需要后被正确销毁?

感谢您的时间。

0 投票
1 回答
311 浏览

wpf - MSDN 错误上的 ImageSource 类?

从 MSDN 上的 ImageSource 类的定义中,我不清楚这意味着什么:

表示具有宽度、高度和 ImageMetadata 的对象类型,例如 BitmapSource 和 DrawingImage。

这是一个抽象类,DrawingImage 和 BitmapSource 都派生自 ImageSource,它们不是元数据的一部分。

0 投票
1 回答
332 浏览

wpf - BitmapSource 与 DrawingImage

我知道 DrawingImage 有一个 Drawing 属性,我们可以设置任何 Drawing 子类,这些子类用画笔和钢笔表示几何图形。但是 BitmapSource 将其像素存储在哪里,在 MSDN 文档中对 BitmapSouce 的描述是:

表示具有特定大小和分辨率的单个恒定像素集。

但我没有看到像素集的任何属性?顺便说一句,它们都来自 ImageSource。

0 投票
1 回答
1783 浏览

c# - 使用 BitmapSource 时内存不足

我正在以 30 毫秒(30 fps)的频率在运行时更改 WPF 图像的来源。我得到了 OutOfMemory。在以下代码中,iImage 是 wpf 应用程序显示和拥有的私有对象。bytes 是在创建窗口时读取和存储一次的字节数组。

我怎样才能避免 outOfMemory ?是否有更好的解决方案可以更好地显示原始字节数组?

谢谢

0 投票
3 回答
2984 浏览

wpf - WPF冻结的BitmapImage不显示

我正在使用绑定到 UI 上的图像属性的视图模型,并且视图模型包含 ImageSource 属性。我使用以下函数设置该属性

出于某种奇怪的原因,在以下代码中,当我在 BitmapImage 上调用 Freeze 时,它​​不会出现在主窗口中。我没有遇到异常或崩溃。有人可以帮我吗?我正在异步设置图像属性,因此我需要能够使用创建的图像,假设 GetImageFromUri 调用是从 UI 线程以外的线程进行的。

0 投票
1 回答
10251 浏览

c# - BitmapSource.CopyPixels->byte[]->BitmapSource 这个简单怎么做呢?

如何在 C# 中进行高效的 BitmapSource 到 byte[] 的转换,反之亦然?

0 投票
1 回答
1732 浏览

wpf - 将 BitmapSource 转换为 Image 保留所有帧

我这里有一个方法应该产生一个 System.Drawing.Image 实例。考虑以下先决条件:

  • 我得到一个 BitmapSource 作为方法参数
  • 下面是从 BitmapSource 转换为 Image 的代码。

转换:

现在想象 BitmapSource 是从 Multipage Tif 文件创建的。我需要做的是使任何第 n 页在代码中可用。BitmapSource 类对此不提供支持,所以您知道如何从我的输入中获取除第一帧之外的任何内容吗?或者 BitmapSource 是否将整个 Tif 读取为一帧,丢失了帧信息?

如果可能的话,我可以在我的方法签名中添加另一个参数,如下所示:

有任何想法吗?

提前致谢!