我有类似的东西:
public Bitmap GetBitmap()
{
Byte[] byteArray= bring it from somewhere
using (Stream stream = new MemoryStream(byteArray))
{
return new Bitmap(stream);
}
}
当我在Bitmap之外使用这个方法时,粉碎了。但如果我进入"使用"范围位图将存在并且工作正常。似乎处理流导致处理位图.. 问题是: 我需要一些深层复印吗?我该怎么做呢?
答案 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}}都是以小写的形式编写的。