2014-04-05 6 views
15

Ich schreibe eine Anwendung für Windows Phone 8.1.Konvertieren eines IBuffer in ein Byte-Array in Windows Phone 8.1, wie?

Ich muss ein UIElement als Bilddatei speichern (ich würde JPG oder PNG bevorzugen). Ich verwende RenderTargetBitmap-Klasse, um dies zu tun. Nachdem ich die Methode RenderAsync auf meinem UIElement aufgerufen habe, erstelle ich einen IBuffer, der das Ergebnis der Methode GetPixelsAsync() meiner RenderTargetBitmap enthält.

Jetzt muss ich die Methode ToArray() aufrufen, um meinen IBuffer in einem Byte-Array zu konvertieren, um mein Bild mit BitmapEncoder zu speichern, aber es scheint, dass es unter Windows Phone 8.1 keine ToArray() -Methode für IBuffer gibt , während auf Windows 8.1 vorhanden ist.

Wie kann ich dieses Problem lösen?

Vielen Dank!

+0

Can Sie zeigen etwas Code? Insbesondere wie erstellt man den IBuffer - was ist das eigentliche Objekt, das die Schnittstelle implementiert? –

Antwort

21

Dies ist auf Windows Phone 8.1 verfügbar, aber es ist nicht auf WP 8.0 verfügbar. (siehe MSDN link)

Sie müssen sicherstellen, dass Sie den entsprechenden Namespace jedoch enthalten, so dass es durch den Compiler zu finden ist:

using System.Runtime.InteropServices.WindowsRuntime

+0

Danke, funktioniert perfekt! : D – AshleyT

3

ich neue Frage einfach nicht wollen, so entscheiden erstellen um dieses zu erweitern. Es wird vollständige Antwort für beide Plattformen WP8 und Windows Store App

sein Vielleicht wissen Sie, wie Befehlspufferspeicher konvertieren byte [] in Windows Store App, wo wir nicht diesen Namensraum verwenden können: System.Runtime.InteropServices.WindowsRuntime

Grüße, Marcin

Vorschlag Lösung: I-Code aus diesem Beitrag verwenden: https://stackoverflow.com/a/21490534/3139083

Dank

+0

Nur ein Hinweis für zukünftige Referenz, die Richtlinien für StackOverflow zeigen an, dass Sie eine neue Frage starten sollten, anstatt auf eine zu erweitern. Es wird allgemein akzeptiert, eine neue Frage zu starten, wenn diese Ihren Anwendungsfall nicht spezifisch beantwortet. –