2012-08-29 84 views
3

我需要在Windows 8应用程序中渲染一些自定义PNG。Windows 8 Metro应用程序 - 渲染PNGs

基本上我需要通过在我的应用程序中为活动图块的图片顶部放置一些绘图来创建自定义活动图块,唯一的方法是将PNG呈现给磁盘see here

我应该用什么库来做到这一点?我的第一个想法是使用Xaml UserControlRenderTargetBitmap,但它不适用于Metro应用程序。

回答

1

WinRT XAML工具包有一些WriteableBitmap的扩展方法,您也可以使用。您可以使用WriteableBitmapLoadExtensions进行加载,使用WriteableBitmapSaveExtensions进行保存。它具有相当有限的传输能力,尽管它已经被WriteableBitmapEx公开了,并且无论如何都很简单。 WriteableBitmapBlitBlockExtensions只是一种从相同宽度的位图中提取全像素块的方法。

编辑* RenderTargetBitmap现在可在Windows 8.1中使用。它不支持某些元素(我认为它不提供相机预览,媒体元素和可能WebViews)。

+0

我实际上最终从那里拿了一些扩展名保存到一个PNG文件。是否有任何扩展来渲染线条?甚至以角度渲染其他图像来创建线条?我使用'WriteableBitmapEx'处理了案例,但与我们游戏中呈现的内容相比,这些行非常难看。 – jonathanpeppers

+0

我认为你需要查看Direct2D或实现自己的抗锯齿线绘制方法。 –

+0

我们使用的是MonoGame,所以我会看看'RenderTarget2D'是否可以工作。最后我检查了'RenderTarget2D'在MonoGame(iOS上)中不起作用。我会尝试用于Windows 8。 – jonathanpeppers

1

目前唯一的选择是使用DirectX(或SharpDX)来创建图像。您可能必须使用低级DirectX API重新创建绘图。如果你的图画很简单, WritableBitmapEx也可能有帮助。

+0

WriteableBitmapEx看起来就像它是我正在寻找的。我可以看到我可以在哪里渲染图像并在其上绘制线条。有没有任何存储到磁盘的例子? – jonathanpeppers

+0

我没有任何示例,但你会想要使用这个:http://msdn.microsoft.com/en-us/library/windows/apps/windows.graphics.imaging.bitmapencoder.aspx – robertos

+0

这就是WinRT Xaml Toolkit的扩展使用了什么。因此,需要它的人有一个例子:http://winrtxamltoolkit.codeplex.com/SourceControl/changeset/view/17730#327690 – jonathanpeppers

相关问题