Как конвертировать 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 присутствует.
Как я могу решить эту проблему?
Спасибо!
2 ответа
Это доступно в Windows Phone 8.1, но не доступно в WP 8.0. (см. ссылку MSDN)
Вам необходимо убедиться, что вы включили подходящее пространство имен, чтобы оно было найдено компилятором:
using System.Runtime.InteropServices.WindowsRuntime
Я просто не хочу создавать новый вопрос, поэтому решите расширить этот вопрос. Это будет полный ответ для обеих платформ WP8 и Windows Store.
Может быть, вы знаете, как преобразовать IBuffer в byte[] в приложении Магазина Windows, где мы не можем использовать это пространство имен: System.Runtime.InteropServices.WindowsRuntime
С уважением, Марчин
Предложение решения: я использую код из этого поста: /questions/20409621/readtextasync-v-prilozhenii-magazina-windows-s-mnogobajtovyim-fajlom-i-javascript/20409638#20409638
Спасибо