问题标签 [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.
wpf - 将 WPF 控件转换为 BitmapSource
这是一个由两部分组成的问题——首先,为什么这段代码不起作用?
当我将图像写入磁盘时,我看到的只是一张黑色图像——我以前做过,没有任何问题,但现在有一些东西在逃避我……我检查了宽度和高度以及缓冲区中的数据MemoryStream 和一切看起来都很好......
这只是一个测试,真正的目标是从 Canvas 视觉图像创建一个 BitmapSource。画布是在代码中使用形状(折线等)绘制的。然后我需要将此 BitmapSource 以大约每秒 60 帧的速率传递给 xaml 中的图像。我注意到如果我创建一个模拟 BitmapSource,Image.Source 正在使用 CachedBitmap,但是每次我更新我的(黑色)位图时它都会重新绑定到我的 BitmapImage。
关于如何以 60fps 在内存中创建 Canvas 并从中创建一个被 Image.Source 视为 CachedBitmap 的 BitmapSource 的建议?
c# - RenderTargetBitmap 内存泄漏
每次我从 RenderTargetBitmap 创建一个实例以渲染图像时,我都尝试使用 RenderTargetBitmap 渲染图像,内存增加,完成后内存从未释放,这是代码:
请我需要帮助如何释放内存并感谢所有人。
wpf - RenderTargetBitmap 将原始数据保存到磁盘
我有一个高 fps 的 RenderTargetBitmap 流我想将它们保存到磁盘以便以后处理它们,我不想将它们编码为 Png、bmp 或其他任何东西,我想保存原始字节缓冲区。
那可能吗?
谢谢
wpf - WPF:将画布内容绘制到位图问题
我有一个从 Canvas 继承的 DottedCanvas 类的自定义控件,其中包含从 TextBox 继承的 TreeNode 类的一些自定义控件。画布控件具有样式:
TextBox 控件被包装到 UserControl 中,并且有自己的样式:
然后我尝试将此画布打印到位图:
图像看起来是这样的:
Canvas 没有点(样式发挥了作用),但 TextBox 的 BorderThickness 在图像上保持为 1。函数中的断点PrepareTree()
显示 TextBox BorderThickness 属性设置为零(这意味着该样式也有效)。如何在图像上获得“新”版本的文本框?
c# - 从 DcRenderTarget 创建 CompatibleRenderTarget 时出现异常
我在“Windows API Code Pack for .NET”中使用.Net Direct2D API 来提高绘图性能,在从DcRenderTarget 创建CompatibleRenderTarget 时总是抛出“Exception from HRESULT: 0x88982F80”,我不知道为什么,困扰了我两天。这是我的代码:
var renderTarget = dcRenderTarget.CreateCompatibleRenderTarget(CompatibleRenderTargetOptions.None, new PixelFormat(Format.R8G8B8A8UNorm, AlphaMode.Straight), 新尺寸);
如果我将“AlphaMode”更改为其他,例如“Ignore”,它可以正常工作,但它无法使 renderTarget 透明,或者绘制质量差。
希望有人知道原因或请自由发表您的想法。
问候!
谢谢,
c# - 将 RenderTargetBitmap 转换为 System.Drawing.Image
我有 3D WPF 视觉对象,我想将其传递到 Excel 单元格(通过剪贴板缓冲区)。
使用“正常” BMP 图像它可以工作,但我不知道如何转换RenderTargetBitmap
.
我的代码如下所示:
我的问题是gr.DrawImage
不接受 aSystem.Windows.Controls.Image
或 a System.Windows.Media.Imaging.RenderTargetBitmap
; 只有一个System.Drawing.Image
。
如何将 转换Controls.Image.Imaging.RenderTargetBitmap
为Image
,或者有更简单的方法吗?
c# - RenderTargetBitmap 不遵守 ColumnDefinitions 宽度
我需要创建带有一些隐藏列的 Grid 快照(通过将其设置为 ColumnDefinition.Width = 0)。
在屏幕上看起来不错,但created image
所有列都可见(does not respect the ColumnDefinitions)
。我在某处发红,这是因为 RenderTargetBitmap 正在查看不存在这些更改的不同层(视觉层与布局层)。是否有机会使用正确的 ColumnDefinitions 获得网格的真实快照?我不能简单地使用 Rectagnel.Fill = VisualBrush,因为我需要循环存储这些图像(每次迭代 = 新图像)。
我尝试了像这个片段这样的方法
c# - 为什么所有的坐标和大小都很奇怪?
此代码生成以下图像。
如果位图是 300x300,为什么白色矩形(0、0、400、400)只占它的一小部分? 为什么文本不居中?
我什至不确定谷歌的条款。我寻求智慧。
wpf - 使用 scrollviewer 截取 WPF 数据网格的屏幕截图
我正在尝试截取必须显示多行的数据网格的屏幕截图。所以有一个滚动查看器。因此,当我只是将数据网格放入 RenderTargetBitmap 的渲染方法中时,我显然只是获得了数据网格的可查看部分。我读到可以在实际呈现该控件的 ScrollViewer 的 ItemsPresenter 时截取内容的屏幕截图,因为 ItemsPresenter 将具有内容的“真实”宽度和高度。
不幸的是,我的 ScrollViewer 与 dataGrid 没有任何不同的高度、ActualHeight 或 RenderSize.Height。所以我总是只得到内容的可见部分。
任何人都知道如何以正确的方式做到这一点,它实际上需要整个内容?
代码:
c# - 如果未在窗口中设置 RenderTargetBitmap 将呈现空控件(Visiblox 图表)
我正在尝试将 Visiblox 图表呈现为图像,以便能够同时显示数百个。图表是在代码中生成并在不显示的情况下呈现的。
我面临的问题是图表在渲染后看起来是空的。上层控件是图表,下层是添加到控件之前渲染的图表。由于水印在那里,因此正在进行一些渲染。
使用绑定和数据上下文填充图表(以防万一)。在渲染之前查看图表看起来它实际上是空的,谢谢让我问“用户控件何时检索绑定? ”。
这是我用来渲染图像的代码: