问题标签 [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 回答
918 浏览

c# - 为什么不断删除和重新添加 DrawingVisual 会导致内存使用量不断增加?

我有一个 WPF 程序,它使用 aCanvas内的 a Window,覆盖成为 a Graphics_Canvas,如下所示:

(我确实是从网上某处得到的,但我不记得前一段时间在哪里了。)

无论如何,该程序允许用户通过用鼠标中键拖动来平移显示在 上的图形Graphics_Canvas,这将不断(只要他们继续平移)触发如下所示:

所以我不断删除然后重新添加dataVisual.

当我查看内存使用时,我注意到的是,四处移动会导致内存使用增加,虽然它确实再次下降,但它并没有完全恢复到以前的水平。当显示屏上根本没有任何内容时,这一点更加明显,并且持续有效地重新添加任何内容的内存使用量可能会上升到数百 MB,并且在平移停止时再次下降。

作为信息,我应该补充一点,它GetDataDrawingVisual()返回 a Visual,在其上绘制 a RenderTargetBitmap,它本身不会保留在该方法之外。

我的问题是为什么这会导致内存使用量变化如此之大?

目前这更像是一个奇怪的麻烦,但我可以预见,如果可用内存一开始就受到更多限制,这可能是一个问题。

任何见解将不胜感激。

* 更新 (21/03/2013) *

通过对 的试验Graphics_Canvas,似乎以下方法对未释放的内存量产生了相当大的影响:

如果我只是返回 anew DrawingVisual()作为测试,那么在重新绘制结束后,内存几乎可以恢复到原来的位置。

但是,删除这个方法只是意味着Canvas不会运行,我会得到一个错误。可能是.NET 在幕后某个地方引用了Visual从这个方法返回的内容,然后没有取消引用它?我该如何排序?(注意:我从未在我的代码中显式调用此方法,它是从其他地方调用的)。

0 投票
1 回答
838 浏览

wpf - TallComponents PDF Rasterizer.NET convertToWPF 内存错误

我正在尝试使用 TallComponents PDF Rasterizer 栅格化 pdf

tiff 效果很好。虽然我想 ConvertToWpf ..

我直接向他们问了这个问题,虽然没有回应..

所以,我按照他们的示例代码..

当我使用只有 1 页的 pdf 时,它可以工作。

当我使用超过 1 页的 pdf 时,出现内存不足错误。

当我使用超过 1 页的 pdf 并从第 2 页开始并跳过第一页时,它可以工作。虽然所有页面都是空白的,但说我只能光栅化第一页,因为它是试用版。

我是否因为它是试用产品而收到内存错误?

0 投票
1 回答
337 浏览

wpf - WPF 中的 RenderToBitmap 问题

实际上,我必须从 a 打印视图Viewport3D,显然,我使用 a RenderTargetBitmap。问题是,如果渲染图像的分辨率变高,我的场景的一些三角形不会出现在我的最终图像上。

例如, myviewport可以是1024*768,我使用的分辨率是 my的RenderTargetBitmap3 倍viewport

http://imgur.com/PS2F9D9

我已经以某种方式解决了这个问题......事实上,当我使用大比例尺时,三角形不会出现。如果我降低 my 的大小RenderTargetBitmap,它将包含所有内容。

实际上,我在96dpi处或多或少有1024*768。如果我想以300dpi给人留下深刻印象,我需要获得一张巨大的图像,所以我想避免使用最后一种解决方案。

一些代码:

我的电话是:

其中 m_impression 是 .png 或 .jpg

0 投票
0 回答
157 浏览

c# - 图像控件使用比画布高的内存。为什么?

我使用画布在 WPF 中呈现一些较长的内容(例如,几页的文本、图像、形状等)。当我使用 Scale 变换对其进行缩放时,它会缩放并且内存使用情况得到控制。现在,我有了在画布中使用少量图像控件并渲染上述内容的想法。但是,当我扩大规模时,内存会增加很多,而当我缩小规模时,内存会减少。可能是什么问题呢。

我使用的代码:

0 投票
1 回答
577 浏览

c# - 在代码中而不是 XAML 中呈现 UserControl

我想使用RenderTargetBitmap将 UserControl 呈现为位图,而无需为其编写 XAML。当我这样做时,我得到一个空白图像,我错过了一个关键步骤吗?

0 投票
2 回答
2680 浏览

c++ - 如何从 WinRT (8.1) 中的 MediaElement 捕获当前帧?

我正在尝试在通过 MediaElement 显示视频的 WinRT 应用程序中实现屏幕截图功能。我有以下代码,它保存了一个 MediaElement 大小的屏幕截图,但图像是空的(完全黑色)。尝试使用各种类型的媒体文件。如果我在 Surface RT 上执行 Win Key + Vol Down,则屏幕截图包括媒体帧内容,但如果我使用以下代码,则周围一片漆黑:(

这里的 MultimediaItem 是我的 View Model 类,其中有一个 UniqueId 属性,它是一个字符串。

“播放器”是媒体元素的名称。

代码有什么问题,或者这种方法有问题,我必须用 C++ 进入战壕吗?

PS 我只对 WinRT API 感兴趣。

更新 1看起来 RenderTargetBitmap 不支持这一点,MSDN 文档澄清了它http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.media.imaging.rendertargetbitmap。我将不胜感激有关如何使用 DirectX C++ 执行此操作的任何指示。这对我来说是一项重大任务,所以我会以一种或另一种方式破解这个问题并报告解决方案。

0 投票
1 回答
17161 浏览

wpf - 将 RenderTargetBitmap 转换为位图

这看起来像一个 dup 问题,但没有人回答实际问题。

这里是:基本上,我将 ViewPort3D 渲染为代码中的 2D 快照,但需要将该类型 RenderTargetBitmap转换为类型System.Drawing.Bitmap(以便在 2D 端进行进一步处理)。

虽然我知道如何将其保存到文件中,但我宁愿跳过该步骤并将其转换bmpRenSystem.Drawing.Bitmap类型,但没有方法可以这样做。

0 投票
2 回答
769 浏览

c# - 在 ViewPort3D 之外的 RenderTargetBitmap 和 Viewport3D 渲染边距

奇怪的问题,但我发现 RenderTargetBitmap 函数正在渲染 ViewPort3D 左侧的边距。当我保存位图(在这种情况下为 PNG)时,最终图像的左侧有一个间隙,而右侧被切掉了相同的数量。ViewPort3D 的尺寸为 550 像素高 x 1024 像素宽。我在 RenderTargetBitmap 方法中使用相同的尺寸。我很困惑为什么它超出了定义的界限。

后面的代码(在 VB 中 - 抱歉):

我认为它所在的容器(网格)可能是问题所在。

0 投票
0 回答
575 浏览

writeablebitmap - RenderTargetBitmap 总是对我的 DrawingVisual 进行抗锯齿处理

我必须将 TextBox 中的文本呈现为 WriteableBitmap。此代码运行良好,但其中的文本模糊或抗锯齿。关于如何保持别名和清晰的任何想法?

我发现没有用:

或者

0 投票
1 回答
14079 浏览

c# - 将画布保存为 png C# wpf

所以我试图在 WPF C# 中拍摄我的画布的快照,以便我可以将其保存为 png。图像目前保存不正确,因为它包括左边距和上边距。

这就是我所拥有的:

为画布的大小创建一个矩形。如果 canvas.Margin.Left 和 Top 设置为 0,则保存的图像大小正确,但仍会发生偏移,因此会切割底部和右侧边缘。设置 Margin.Left 和 Top 仍会导致发生偏移,但保存整个图像但尺寸错误(margin.Left + ActualWidth),而不仅仅是 ActualWidth