Преобразуйте IBuffer в массив байтов в Windows Phone 8.1, как?

Я пишу приложение для Windows Phone 8.1.

Мне нужно сохранить UIElement в виде файла изображения (я бы предпочел JPG или PNG). Я использую класс RenderTargetBitmap, чтобы сделать это. После вызова метода RenderAsync в моем UIElement я создаю IBuffer, который содержит результат метода GetPixelsAsync() моего RenderTargetBitmap.

Теперь мне нужно вызвать метод ToArray() для преобразования моего IBuffer в байтовый массив, чтобы сохранить мое изображение, используя что-то вроде BitmapEncoder, но кажется, что в Windows Phone 8.1 нет никакого метода ToArray() для IBuffer, в то время как в Windows 8.1 присутствует.

Как я могу решить эту проблему?

Ответы

Ответ 1

Это доступно на Windows Phone 8.1, но оно недоступно на WP 8.0. (см. ссылка MSDN)

Вам нужно убедиться, что вы включили соответствующее пространство имен, так что оно найдено компилятором:

using System.Runtime.InteropServices.WindowsRuntime

Ответ 2

Я просто не хочу создавать новый вопрос, поэтому решите расширить этот. Это будет полный ответ для обеих платформ WP8 и Windows store app

Возможно, вы знаете, как конвертировать IBuffer в байт [] в приложении Windows Store, где мы не можем использовать это пространство имен: System.Runtime.InteropServices.WindowsRuntime

С уважением, Marcin

Предложение: Я использую код из этого сообщения: fooobar.com/info/354328/...

Спасибо