问题标签 [rendertargetbitmap]

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 投票
1 回答
558 浏览

wpf - 无法从 MemoryStream 加载 Splat.IBitmap

我正在尝试通过返回 Splat.IBitmap 以与平台无关的方式将布局数据渲染到位图,并且无法输出结果。我的 WPF 平台代码如下所示:

我一直AggregateExceptionBitmapLoader.Current.Load打电话。内部异常是一条NotSupportedException消息,No imaging component suitable to complete this operation was found.我无法找到任何相关文档来解释这意味着什么或我做错了什么。作为测试,我尝试将位图编码器保存到 a FileStream,效果很好。

编辑

有人指出,本期可能与本期重复。它们当然是相关的,但在这种情况下,我想知道为什么保存到MemoryStream失败的地方无法创建有效的图像数据FileStream

编辑 2

根据要求,以下是我在输出中看到的异常:

的内部NotSupportedExceptionAggregateException这个消息和堆栈跟踪:

虽然异常内部NotSupportedException只有此消息,但没有堆栈跟踪:

0 投票
1 回答
109 浏览

wpf - 在 RenderTargetBitmap 捕获 wpf 控件的图像中有一个意外的透明区域

我试图通过 RenderTargetBitmap 类将主窗口 wpf 应用程序捕获为 png 图像。除了图像在底部和左侧有一个小的透明区域外,它工作得很好。这是代码和捕获的图像:

捕获的图像底部有透明部分

0 投票
2 回答
1484 浏览

c# - RenderTargetBitmap 中的内存泄漏

我正在使用 aRenderTargetBitmap来呈现一组控件以生成 PDF。以下代码段是相关部分:

即使在 StackOverflow 和其他论坛上关注其他答案(如清除位图和执行垃圾收集)似乎也无法解决问题。这段代码的每个循环都会泄漏约 100MB 的内存,这意味着我很快就达到了 32 位进程的约 2GB 限制。

泄漏似乎只发生在该RenderTargetBitmap.Render方法上,即使DrawingContext.DrawRectangle调用也不会显着增加内存使用量。

我能做些什么来解决这个问题吗?

这是通过 JetBrains 的 dotMemory 查看的内存使用情况快照。显然,.Net 堆已正确清除,但非托管内存继续增长。

内存快照

0 投票
3 回答
1842 浏览

wpf - Windows 更新 KB4040972/73 导致带有 WPF 类的黑色图像

我有一个应用程序依赖于我们使用 DeepZoomTools.dll 的深度缩放图像(从 PNG 转换为各种比例的 JPG 金字塔)。这依赖于 PresentationCore.dll 并且多年来一直运行良好。

在推出 KB4040972 和 KB4040973 之后,从 PNG 到 JPG 的转换会生成(取决于坐标)黑色图像,而不是它应该包含的图像。

如果以下代码在控制台或桌面应用程序中运行,则它可以工作。

只有在高权限系统帐户下运行(例如,来自任务调度程序)时,它才不起作用。

我创建了一个项目来重现该问题,代码如下:

有什么线索吗?

0 投票
1 回答
274 浏览

wpf - 在生产 WCF 服务中使用 RenderTargetBitmap 在内存中创建位图失败

我正在使用 WPF 对象在内存中生成位图图像。执行此操作的程序驻留在 WCF Web 服务中。当我在 IISExpress 和测试 IIS 7 服务器上本地运行时,图像可以正确呈现。但是,在 QA 使用的服务器上运行时,图像无法正确呈现。更具体地说,仅渲染 250px 高度图像的顶部 22px 行。测试服务器和 QA 服务器上的设置应该是相同的(在此处插入怀疑的面孔)。

问题:IIS 中的哪些可能设置会影响此图像渲染?另外,我认为可能存在线程问题,因为 RenderTargetBitmap 是异步渲染的,并且我确实得到了部分图像。

这是我正在使用的代码:

0 投票
1 回答
229 浏览

wpf - 不使用排列()渲染 WPF UIElement

我正在尝试从我的 ViewModel 渲染画布。将画布传递给我的虚拟机后,我使用此函数对其进行渲染:

这工作正常,除了安排()函数之外的所有功能都会导致我的画布移动到其父级的左上角,这在视觉上破坏了我的 UI。如果我删除对arrange() 的调用,那么我渲染的位图只是cavas 的一个小角落。

如何在不移动 UI 的情况下渲染我的卡瓦斯?

0 投票
1 回答
2199 浏览

c# - RenderTargetBitmap 图像质量低问题

我尝试使用方法生成300 dpi图像RenderTargetBitmap

当我尝试使用 RenderTargetBitmap renderTargetBitmap = newRenderTargetBitmap(315, 195, 300, 300, PixelFormats.Pbgra32);

图像变得非常大。

如何解决?

0 投票
1 回答
95 浏览

uwp - 在 uwp 中更新视图后如何使用 RenderedTargetBitmap?

我有滚动查看器来缩放图像,我缩放了图像并对图像进行了一些更改。然后,我试图在按钮单击中保存图像。在按钮单击中,我已将缩放因子值更改为 1,然后使用 RenderedTargetBitmap 类获取滚动查看器的流。

现在我只获得了缩放区域的值,无法获得我单击按钮所做的更改。我知道 RenderedTagetBitmap 只返回可见值,但我想要缩小的值。请给我建议。

0 投票
1 回答
194 浏览

uwp - renderTargetBitmap.RenderAsync 忽略 UserContol 上的图像

我有一个这样的用户控件:

我通过这种方式初始化它:

之后,如您所知,我们必须在任何需要使用 renderTargetBitmap 的东西上显示 UserControl。所以,我准备了一个网格来显示 UserControl。

最后,您可以在我的用户控件中看到两个 Image 元素。将其绑定到框架后看起来很完美。但是,当我使用 FileSavePicker 和 BitmapEncoder 将其导出到图像时,我的用户控件中的那些 Image 元素会随机出现和消失。如果我尝试导出所有WaiterGrid,则 Image 控件位于其原始位置。我想不通。你可以帮帮我吗?谢谢你。

网格上的用户控件:

在此处输入图像描述

导出的图像

在此处输入图像描述

0 投票
1 回答
248 浏览

wpf - RenderTargetBitmap 渲染空图像

情况如下:我有一个 ASP.NET Web 窗体应用程序,它使用 WPF 控件进行报告。

过程如下:Create WPF controls and bind to data -> create image from WPF control -> use generated image to create PDF reports.

RenderTargetBitmap用来从 WPF 控件渲染位图。问题是当我在我的本地机器(Windows 10)上运行所有这些时,它可以工作,一旦应用程序部署在 QA 机器(Windows Server 2008 R2)上,它就会生成空图像。

我试图通过在 WPF 控件上仅保留静态文本来简化报告页面,但我仍然得到空白页面。

我创建了示例控制台应用程序,它模拟了将数据绑定到 WPF(授予的静态数据)的一部分并从 WPF 控件生成图像,并且它适用于两种环境。我能想到的一个区别是控制台应用程序没有运行 as IIS' AppPoolIdentity,它在 QA 机器上运行 Web 应用程序。

我遇到了这篇 SO 帖子,它表明存在导致类似问题的 Windows 更新。我们的 QA 机器是 Azure VM,因此会定期安装更新。导致该问题的更新来自 2017 年 9 月,修复更新于2017 年 10 月发布。所以我排除了导致问题的Windows更新。

同样在引用的 SO 帖子中,OP 建议仅当运行代码的帐户是系统帐户时才会发生此问题

只有在高权限系统帐户下运行(例如,来自任务调度程序)时,它才不起作用。

我也试过这个,让任务计划程序运行示例控制台应用程序,但正如我上面提到的,它成功地创建了图像。

所以在这一刻,我几乎没有想法。

应该生成图像的应用程序代码是分散的,所以我不会在这里分享它,但如果有任何特别感兴趣的部分很高兴发布。

知道什么会导致差异中的这种不同行为。环境?