我需要在Windows 8應用程序中渲染一些自定義PNG。Windows 8 Metro應用程序 - 渲染PNGs
基本上我需要通過在我的應用程序中爲活動圖塊的圖片頂部放置一些繪圖來創建自定義活動圖塊,唯一的方法是將PNG呈現給磁盤see here。
我應該用什麼庫來做到這一點?我的第一個想法是使用Xaml UserControl
和RenderTargetBitmap
,但它不適用於Metro應用程序。
我需要在Windows 8應用程序中渲染一些自定義PNG。Windows 8 Metro應用程序 - 渲染PNGs
基本上我需要通過在我的應用程序中爲活動圖塊的圖片頂部放置一些繪圖來創建自定義活動圖塊,唯一的方法是將PNG呈現給磁盤see here。
我應該用什麼庫來做到這一點?我的第一個想法是使用Xaml UserControl
和RenderTargetBitmap
,但它不適用於Metro應用程序。
WinRT XAML工具包有一些WriteableBitmap的擴展方法,您也可以使用。您可以使用WriteableBitmapLoadExtensions進行加載,使用WriteableBitmapSaveExtensions進行保存。它具有相當有限的傳輸能力,儘管它已經被WriteableBitmapEx公開了,並且無論如何都很簡單。 WriteableBitmapBlitBlockExtensions只是一種從相同寬度的位圖中提取全像素塊的方法。
編輯* RenderTargetBitmap
現在可在Windows 8.1中使用。它不支持某些元素(我認爲它不提供相機預覽,媒體元素和可能WebViews
)。
目前唯一的選擇是使用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
我實際上最終從那裏拿了一些擴展名保存到一個PNG文件。是否有任何擴展來渲染線條?甚至以角度渲染其他圖像來創建線條?我使用'WriteableBitmapEx'處理了案例,但與我們遊戲中呈現的內容相比,這些行非常難看。 – jonathanpeppers
我認爲你需要查看Direct2D或實現自己的抗鋸齒線繪製方法。 –
我們使用的是MonoGame,所以我會看看'RenderTarget2D'是否可以工作。最後我檢查了'RenderTarget2D'在MonoGame(iOS上)中不起作用。我會嘗試用於Windows 8。 – jonathanpeppers