Создайте BitmapImage из ushort [] - PullRequest
1 голос
/ 21 марта 2011

Можно ли создать BitmapImage из массива ushort? и если да, то как?

В тот момент, когда я создаю растровое изображение, преобразовываю его в массив растровых изображений и отображаю его, но это слишком медленно, мне нужно постоянно обновлять изображение (прямая трансляция видео), пока каждый кадр создается пользовательским интерфейсом Студенты, это делает мое приложение очень медленным, когда видео запущено. Поэтому мне нужно как можно быстрее вставить свой ushort [] в BitmapImage

Спасибо, Имон

Ответы [ 2 ]

2 голосов
/ 21 марта 2011

здесь у вас есть пример того, как получить BitmapImage через MemoryStream, это может помочь вам

, вы можете использовать BitConverter для преобразования ushorts в байты дляввод в MemoryStream

1 голос
/ 21 марта 2011

Если вы работаете со значениями от 0 до 255, вы можете преобразовать его в массив байтов, а затем загрузить в MemoryStream:

// Please note that with values higher than 255 the program will throw an exception
checked
{
    ushort[] values = { 200, 100, 30/*, 256*/ };
    var bytes = (from value in values
                 select (byte)value).ToArray();

    // Taken from: /6141362/konvertirovat-potok-pamyati-v-bitmapimage
    using (var stream = new MemoryStream(data))
    {
        var bitmap = new BitmapImage();
        bitmap.BeginInit();
        bitmap.StreamSource = stream;
        bitmap.CacheOption = BitmapCacheOption.OnLoad;
        bitmap.EndInit();
        bitmap.Freeze();
    }
}
...