2017-02-16 104 views
0

如何将BitmapSource转换为MemoryStream。虽然我尝试了一些代码:将BitmapSource转换为MemoryStream

private Stream StreamFromBitmapSource(BitmapSource writeBmp) 
{ 
    Stream bmp; 
    using (bmp = new MemoryStream()) 
    {      
     BitmapEncoder enc = new BmpBitmapEncoder(); 
     enc.Frames.Add(BitmapFrame.Create(writeBmp)); 
     enc.Save(bmp);          
    } 

    return bmp; 
} 

它不给任何错误,但它显示在下面列出了一些例外情况将调试后点。

容量: 'printStream.Capacity' 投掷类型的异常 'System.ObjectDisposedException' 长度: 'printStream.Length' 扔 类型 'System.ObjectDisposedException' 的位置的异常: 'printStream.Position'投掷型 “System.ObjectDisposedException”的异常

+0

请看看[?当有人回答我的问题,我应该怎么办(http://stackoverflow.com/help/someone-answers)除此之外,做什么你打算在写入一个编码位图之后使用MemoryStream?你可能只需要生成的缓冲区,即一个字节数组? – Clemens

+0

谢谢!克莱门斯,我把我的选票发给了答案。 :),并且我希望我的彩色帧可以保存在内存缓冲区中,以便轻松使用“人脸识别API”。因此,我将我的结果返回到我的“人脸识别API”将使用的“Stream”。 –

+0

你也应该接受一个答案。你现在面临的问题是一个不同的问题。 – Clemens

回答

2

using (bmp = new MemoryStream())导致bmp对象是使用块上端销毁。并且你返回被破坏的变量bmp。使用

删除:

private Stream StreamFromBitmapSource(BitmapSource writeBmp) 
{ 
    Stream bmp = new MemoryStream(); 

    BitmapEncoder enc = new BmpBitmapEncoder(); 
    enc.Frames.Add(BitmapFrame.Create(writeBmp)); 
    enc.Save(bmp);            

    return bmp; 
} 
+0

'ReadTimeout ='imgStream.ReadTimeout'抛出了一个'System.InvalidOperationException'类型的异常''WriteTimeout ='imgStream.WriteTimeout'抛出了一个'System.InvalidOperationException'类型的异常感谢您的帮助。但是现在我面临着这两个例外的麻烦 –

0

这里的问题是,你正在创建一个bmp里面using,这就是为什么它被布置你回吧(一旦你离开了使用它配置)之前这就解释了这一点您收到的例外。

private Stream StreamFromBitmapSource(BitmapSource writeBmp) 
{ 
    Stream bmp= new MemoryStream(); 
    using (enc = new BmpBitmapEncoder()) 
    {      
     enc.Frames.Add(BitmapFrame.Create(writeBmp)); 
     enc.Save(bmp);          
    } 

    return bmp; 
} 
+0

'ReadTimeout ='imgStream.ReadTimeout'抛出了'System.InvalidOperationException'类型的异常''WriteTimeout ='imgStream.WriteTimeout'抛出了一个'System.InvalidOperationException'类型的异常感谢您的帮助。但现在我面临着这两个例外的问题 –

+0

可以帮助http://stackoverflow.com/questions/28172110/readtimeout-exception-with-memorystream – moondaisy

+0

不,这不是帮助,我正在使用'BitmapSource' 'Bitmap' –

相关问题