Windows 8 Metro 应用程序 - 渲染 PNG 图片

3
我需要在Windows 8应用程序中渲染一些自定义PNG图像。基本上,我需要通过将我的应用程序中制作的一些绘图放在实时磁贴的图像顶部来创建一个自定义实时磁贴,而唯一的方法是将PNG渲染到磁盘上,请参见此处。我应该使用哪个库来完成这项工作?我的第一个想法是使用Xaml UserControlRenderTargetBitmap,但在Metro应用程序中不可用。
2个回答

1

目前唯一的选择是使用DirectX(或SharpDX)来创建您的图像。您可能需要使用低级别的DirectX API重新创建绘图。 如果您的绘图比较简单,WritableBitmapEx也可能会有所帮助。


WriteableBitmapEx看起来就是我需要的。我可以看到我可以渲染图像并在其上绘制线条。有保存到磁盘的示例吗? - jonathanpeppers
我这里没有任何样例,但你会想要使用这个链接:http://msdn.microsoft.com/en-us/library/windows/apps/windows.graphics.imaging.bitmapencoder.aspx - robertos
这就是WinRT Xaml Toolkit扩展使用的内容。因此,需要示例的人可以在此处查看:http://winrtxamltoolkit.codeplex.com/SourceControl/changeset/view/17730#327690 - jonathanpeppers

1

WinRT XAML Toolkit有一些针对WriteableBitmap的扩展方法,您也可以使用它们。您可能可以使用WriteableBitmapLoadExtensions进行加载和WriteableBitmapSaveExtensions进行保存。但是,它的blitting功能相当有限,因为WriteableBitmapEx已经公开了这个功能,并且很容易编写。WriteableBitmapBlitBlockExtensions仅是从具有相同宽度的位图中复制整个宽度块像素的方法。

编辑* RenderTargetBitmap现在在Windows 8.1中可用。但它不支持某些元素(我认为它不会呈现相机预览、媒体元素和可能的WebViews)。


我最终从那里获取了一些扩展,以便将其保存为PNG文件。是否有任何扩展可以渲染线条?甚至可以渲染其他图像以创建线条吗?我使用WriteableBitmapEx使我的案例工作正常,但与我们游戏中呈现的内容相比,线条非常丑陋。 - jonathanpeppers
我认为你需要研究Direct2D或者实现自己的抗锯齿线绘制方法。 - Filip Skakun
我们正在使用MonoGame,所以我会看看RenderTarget2D是否可行。上次我检查时,在MonoGame(iOS上)中RenderTarget2D无法工作。我将尝试在Windows 8上运行它。 - jonathanpeppers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接