将 BitmapSource 转换为 MemoryStream

2024-01-24

如何将 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.ObjectDisposeException”长度:“printStream.Length”抛出 “System.ObjectDisposeException”类型的异常位置: “printStream.Position”抛出类型异常 'System.ObjectDisposeException'


using (bmp = new MemoryStream()) causes 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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 BitmapSource 转换为 MemoryStream 的相关文章

随机推荐