2014-04-05 10 views
15

Sto scrivendo un'applicazione per Windows Phone 8.1.Convertire un IBuffer in un array di byte in Windows Phone 8.1, come?

Ho bisogno di salvare un UIElement come file immagine (preferisco JPG o PNG). Sto usando la classe RenderTargetBitmap per fare ciò. Dopo aver richiamato il metodo RenderAsync sul mio UIElement, creo un IBuffer che contiene il risultato del metodo GetPixelsAsync() del mio RenderTargetBitmap.

Ora ho bisogno di chiamare il metodo ToArray() per convertire il mio IBuffer in una matrice di byte per salvare la mia immagine usando qualcosa come BitmapEncoder, ma sembra che su Windows Phone 8.1 non ci sia alcun metodo ToArray() per IBuffer , mentre su Windows 8.1 è presente.

Come posso risolvere questo problema?

Grazie!

+0

Can mostri del codice? In particolare, come si crea l'IBuffer: qual è l'oggetto reale che implementa l'interfaccia? –

risposta

21

Questo è disponibile su Windows Phone 8.1, ma non disponibili su WP 8.0. (vedi MSDN link)

È necessario assicurarsi di includere il namespace opportuno comunque in modo che si trova dal compilatore:

using System.Runtime.InteropServices.WindowsRuntime

+0

Grazie, funziona perfettamente! : D – AshleyT

3

io non voglio creare nuova domanda così decidere per espandere questo. Sarà piena risposta per entrambe le piattaforme WP8 e app store di Windows

Forse voi sanno come convertire IBuffer al byte [] in Windows App Store in cui non possiamo usare questo spazio dei nomi: System.Runtime.InteropServices.WindowsRuntime

saluti, Marcin soluzione

Proposta: che uso il codice da questo post: https://stackoverflow.com/a/21490534/3139083

Grazie

+0

Solo una nota per riferimento futuro, le linee guida per StackOverflow indicano che è necessario iniziare una nuova domanda piuttosto che espandersi su una. È generalmente accettato di iniziare una nuova domanda se questa non risponde specificamente al caso d'uso. –