2011-03-21 7 views
1

ushort 배열에서 BitmapImage를 만들 수 있습니까? 만약 그렇다면 어떻게?ushort []에서 BitmapImage 만들기

비트 맵을 비트 맵 배열로 변환하고 표시하는 순간에이 속도가 너무 느립니다. 각 프레임이 생성되는 동안 이미지 (라이브 비디오 피드)를 계속 업데이트해야합니다. UI 스터드는 비디오가 실행 중일 때 내 앱을 매우 느리게 만듭니다. 그래서 가능한 빨리 BitmapImage에

감사합니다, Eamonn 당신은 MemoryStream을 통해 BitmapImage를 얻는 방법의 예를 가지고

+4

배열에 포함 된 항목은 무엇입니까? – SLaks

+0

이미지 데이터, 0 - 65000의 숫자는 회색 음영 이미지 –

+0

사람을 나타냅니다.이 정보는 사용자가 질문했을 때 질문에 포함되어 있어야합니다! 다음 질문을 위해 이것을 기억하십시오. –

답변

1

에 입력 바이트 ushorts 변환 BitConverter을 사용할 수 있으며 255 당신은으로 바이트의 배열로 캐스팅 한 다음로드 할 수:

// 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(); 
    } 
} 
+0

데이터는 0 - 65000입니다. 그러나이 방법이 현재의 것보다 빠르면 축소 해 봅니다. –

2

here을 내 USHORT []를 얻을 필요가, 이것은 당신에게

도움이 될

당신은 당신이 0 사이의 값으로 작업하는 가정 MemoryStream을