【发布时间】:2015-11-16 04:46:36
【问题描述】:
RenderTargetBitmap 类与简单的 Canvas + InkManager(在 Windows 8.1 中)一起使用,将墨水笔触渲染到图像。
UWP 引入了InkCanvas 和新的墨迹 API。但是,RenderTargetBitmap 似乎不适用于此。当我尝试使用RenderAsync 方法捕获墨迹时,没有墨迹只呈现其他对象,如矩形等。
这是一个错误还是这个新的 API 不适合以这种方式使用?如果没有,那么我如何从InkCanvas 渲染图像?
谢谢!
【问题讨论】:
-
[inkCanvas].InkPresenter.StrokeContainer.SaveAsync 可以另存为 .gif
-
是的,我知道这一点。但是,我猜它是嵌入在 .gif 中的 ISF(墨迹格式)。打开时gif本身非常难看,我不能使用它。我绝对想使用 RenderTargetBitmap,但它没有按预期工作。我还尝试使用 BitmapDecoder 解码 gif,获取像素数据并使用 BitmapEncoder 将其编码为另一种格式,但也没有运气(它只包含零,整个图像是黑色的)。例如,我真正想要的是用白色背景渲染一个 png 或 jpg 图像。也许以后操纵它。有人可以帮忙吗?
-
我试图回到旧的 InkManager + Canvas 组合,但 InkManager 在实例化时抛出 COM Exception。
-
好的,我将有一个包含 Win2D(Microsoft 的 Direct2D .NET 包装器)的解决方案。 Win2D 可以通过 nuget 包在 UWP 应用程序中使用。非常好的东西。我设法用这个将墨水笔画保存到图像(jpeg、png 和其他格式)。
-
@mudbox,我建议您将发现的内容写到答案中,以便对其他人有所帮助。
标签: c# xaml uwp inkcanvas rendertargetbitmap