我需要在Windows 8应用程序中渲染一些自定义PNG图像。基本上,我需要通过将我的应用程序中制作的一些绘图放在实时磁贴的图像顶部来创建一个自定义实时磁贴,而唯一的方法是将PNG渲染到磁盘上,请参见此处。我应该使用哪个库来完成这项工作?我的第一个想法是使用Xaml
UserControl
和RenderTargetBitmap
,但在Metro应用程序中不可用。UserControl
和RenderTargetBitmap
,但在Metro应用程序中不可用。目前唯一的选择是使用DirectX(或SharpDX)来创建您的图像。您可能需要使用低级别的DirectX API重新创建绘图。 如果您的绘图比较简单,WritableBitmapEx也可能会有所帮助。
WinRT XAML Toolkit有一些针对WriteableBitmap的扩展方法,您也可以使用它们。您可能可以使用WriteableBitmapLoadExtensions进行加载和WriteableBitmapSaveExtensions进行保存。但是,它的blitting功能相当有限,因为WriteableBitmapEx已经公开了这个功能,并且很容易编写。WriteableBitmapBlitBlockExtensions仅是从具有相同宽度的位图中复制整个宽度块像素的方法。
编辑* RenderTargetBitmap
现在在Windows 8.1中可用。但它不支持某些元素(我认为它不会呈现相机预览、媒体元素和可能的WebViews
)。
RenderTarget2D
是否可行。上次我检查时,在MonoGame(iOS上)中RenderTarget2D
无法工作。我将尝试在Windows 8上运行它。 - jonathanpeppers