销毁流会导致破坏位图

时间:2015-10-03 07:05:13

标签: c# bitmap stream

我有类似的东西:

       public Bitmap GetBitmap()
       {         
            Byte[] byteArray= bring it from somewhere    
            using (Stream stream = new MemoryStream(byteArray))
            {
                return new Bitmap(stream);
            }
        }

当我在Bitmap之外使用这个方法时,粉碎了。但如果我进入"使用"范围位图将存在并且工作正常。似乎处理流导致处理位图.. 问题是: 我需要一些深层复印吗?我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

当您处置Bitmap时,public static Bitmap GetBitmap() { byte[] byteArray = bring it from somewhere using (Stream stream = new MemoryStream(byteArray)) { var tempBitmap = new Bitmap(stream); return new Bitmap(tempBitmap); // This will deep-copy the Bitmap } } 将会丢失,所以您确实需要执行深层复制。 最终你的代码应该是:

byte

顺便说一句,通常原始类型,如{{1}}都是以小写的形式编写的。