2017-11-09 19 views
-1

에 나는이 ValueConverter 변환 가지고 byte[]BitmapImage로 : 이상하게UWP ValueConverter 바이트에서 [] BitmapImage

public class ByteArrayToImageConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, string language) 
     { 
      var bitmapImage = new BitmapImage(); 
      var buffer = (byte[])value; 
      var str = new MemoryStream(buffer).AsRandomAccessStream(); 
      bitmapImage.SetSource(str); 
      return bitmapImage; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, string language) 
     { 
      throw new NotImplementedException(); 
     } 
    } 

, 나는 코드의에서의 응용 프로그램 중단 (교착 상태)를 실행할 때 SetSource의 줄.

왜 그런가요? 내가 뭔가 잘못하고 있는거야? 그것을 올바르게하는 방법? 큰 감사드립니다!

답변

-1

변환 할 수있는 아래 코드를 사용해보세요.

var bytes = (byte[])value; 

var image = bytes.AsBuffer().AsStream().AsRandomAccessStream(); 

// decode image 
var decoder = await BitmapDecoder.CreateAsync(image); 
image.Seek(0); 

// create bitmap 
var output = new WriteableBitmap((int)decoder.PixelHeight, (int)decoder.PixelWidth); 
await output.SetSourceAsync(image); 
return output; 
+0

비동기를 선언 할 수없는 변환 방법에서 어떻게 호출할까요? 게다가 BitmapImage 대신 WriteableBitmap을 만드는 것은 의미가없는 것처럼 보입니다. 아니면 설명이 있습니까? – Clemens

+0

@Clemens 난 너에게 중복 된 질문에 대한 또 다른 대답을하고 싶다. – lindexi

+0

왜 "내 중복 질문"입니까? 나는 그 질문을하지도 않았고 닫지도 않았다. 말도 안돼. 미안해. 그 대답은 그 질문의 맥락에서 쓸모가 없다. – Clemens