从ushort []创建一个BitmapImage

时间:2011-03-21 18:23:10

标签: c# wpf bitmap bitmapimage imagesource

是否可以从ushort数组创建BitmapImage?如果是这样的话?

我正在创建一个Bitmap,将其转换为Bitmap数组并显示它,但这太慢了,我需要不断更新图像(实时视频输入),同时每个帧都在创建UI研究员,这使得我的应用程序在视频运行时非常慢。所以我需要尽快将我的ushort []放入BitmapImage中

谢谢, 埃蒙

2 个答案:

答案 0 :(得分:2)

here你有一个如何通过MemoryStream获取BitmapImage的例子,这可能对你有帮助

您可以使用BitConverter将ushorts转换为byte以输入到MemoryStream

答案 1 :(得分:1)

假设您正在使用0255之间的值,您可以将其转换为字节数组,然后将其加载到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: http://stackoverflow.com/questions/5346727/wpf-convert-memory-stream-to-bitmapimage
    using (var stream = new MemoryStream(data))
    {
        var bitmap = new BitmapImage();
        bitmap.BeginInit();
        bitmap.StreamSource = stream;
        bitmap.CacheOption = BitmapCacheOption.OnLoad;
        bitmap.EndInit();
        bitmap.Freeze();
    }
}