2010-08-08 5 views
0

메모리 스트림을 디코딩 할 때이 코드를 사용하지만,이 오류가 발생하지 않습니다. "이 작업을 완료하는 데 적합한 이미징 구성 요소가 없습니다." 여기WPF : JpegBitmapEncoder를 사용하여 이미지를 직렬화 가능 개체에 저장하고 JpegBitmapDecoder에서 다시 사용하는 방법?

MemoryStream stream = new MemoryStream(value, false); 
       stream.Seek(0, SeekOrigin.Begin); 
       JpegBitmapDecoder JpegBitmapDecoder = new JpegBitmapDecoder(
        stream, BitmapCreateOptions.None, 
        BitmapCacheOption.None); 

       image.Source = JpegBitmapDecoder.Frames[0]; 
       image.Height = hh; 
       image.Width = ww; 
       stream.Close(); 
       UIVisual.Background = null; 
       UIVisual.Child = image; 
       UIVisual.UpdateLayout(); 
       image = null; 

그리고 내가 바이트 이미지를 변환하는 방법입니다

JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder(); 

    jpgEncoder.Frames.Add(bitmapFrame); 
    Byte[] _imageArray; 
    MemoryStream memStream = new MemoryStream(); 
    jpgEncoder.Save(memStream); 
    return memStream.ToArray(); 

그래서, 내가 memStream.ToArray()가 나중에 사용하는 저장을, 나는) (저장된 memStream.ToArray에서 MemoryStream을을 생성 그리고 위의 코드처럼 JpegBitmapDecoder와 함께 사용하십시오.

저장된 바이트를 검색 할 수없는 이유는 무엇입니까 ?? 내가 뭘 잘못 했니? 감사합니다

답변

1

안녕하세요 두 가지 옵션이 Byte [] 또는 MemoryStream으로 반환됩니다, 다음 코드를 참조하십시오.

샬롬 Keynan

private static MemoryStream GetImageAsMemoryStream(BitmapSource bitmapSource) 
    { 
     JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder(); 
     jpgEncoder.Frames.Add(BitmapFrame.Create(bitmapSource)); 
     // Byte[] _imageArray; 
     MemoryStream memStream = new MemoryStream(); 
     jpgEncoder.Save(memStream); 
     //_imageArray= memStream.ToArray(); 
     memStream.Seek(0, SeekOrigin.Begin); // you MUST rewind before decoding 
     return memStream; 
    } 

    private static Byte[] GetImageAsByte(BitmapSource bitmapSource) 
    { 
     JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder(); 
     jpgEncoder.Frames.Add(BitmapFrame.Create(bitmapSource)); 
     Byte[] _imageArray; 
     MemoryStream memStream = new MemoryStream(); 
     jpgEncoder.Save(memStream); 
     _imageArray = memStream.ToArray(); 
     return _imageArray; 
    } 

행운을 도울 수 있기를 바랍니다!

관련 문제