Массив пикселей BitmapImage в универсальном приложении Windows с C#

Я программирую универсальное приложение для Windows на C# и столкнулся с точкой в ​​своем коде, где хочу получить массив пикселей из объекта BitmapImage.

Хотя это можно легко сделать с помощью BitmapImage.CopyPixels(), если используется пространство имен System.Windows.Media.Imaging, я обнаружил, что это пространство имен недоступно для универсальных приложений Windows. . Вместо этого я использовал пространство имен Windows.UI.Xaml.Media.Imaging для импорта своего изображения, в котором нет метода BitmapImage.CopyPixels().

К счастью, я могу создать объект BitmapDecoder с пространством имен Windows.Graphics.Imaging, что позволяет мне извлекать информацию о пикселях с помощью BitmapDecoder.GetPixelDataAsync()< /сильный> функция. К сожалению, я не могу найти способ конвертировать BitmapImage в BitmapDecoder.

Есть ли способ сделать это, или я собираюсь получить массив пикселей из объекта BitmapImage совершенно неправильным способом? Любые предложения помогут!


person Kevin Brant    schedule 04.02.2016    source источник
comment
Создайте временный файл в локальном хранилище.‹br/› Для каждого изображения, пиксель которого вам нужен, запишите его в этот временный файл. Теперь вы можете прочитать его и использовать BitmapDecoder для получения своих пикселей. Вы можете обратиться к этому руководству   -  person Jerin    schedule 04.02.2016
comment
Вы можете взглянуть на этот ответ.   -  person Romasz    schedule 04.02.2016
comment
Спасибо за помощь.   -  person Kevin Brant    schedule 04.02.2016