我有一些像:
public Bitmap GetBitmap()
{
Byte[] byteArray= bring it from somewhere
using (Stream stream = new MemoryStream(byteArray))
{
return new Bitmap(stream);
}
}
当我在外部使用此方法时,位图被压碎。但是如果我进入"using"作用域,位图将存在并且工作良好。似乎处理流会导致处理位图。问题是:我需要深度拷贝吗?我该怎么做呢?
在处理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
,都是小写的。