Преобразуйте 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/...
Спасибо