是否可以从ushort数组创建BitmapImage?如果是这样的话?
我正在创建一个Bitmap,将其转换为Bitmap数组并显示它,但这太慢了,我需要不断更新图像(实时视频输入),同时每个帧都在创建UI研究员,这使得我的应用程序在视频运行时非常慢。所以我需要尽快将我的ushort []放入BitmapImage中
谢谢, 埃蒙
答案 0 :(得分:2)
here你有一个如何通过MemoryStream获取BitmapImage的例子,这可能对你有帮助
您可以使用BitConverter将ushorts转换为byte以输入到MemoryStream
答案 1 :(得分:1)
假设您正在使用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: 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();
}
}