问题:
使用 Image 保存图像时.Save(...) 使用内存流,如果在保存之前关闭内存流,开发人员可能会遇到 GDI 异常。但在动态图像创建场景下,保存前需要关闭流。
代码场景:
Bitmap image2; using (Stream originalBinaryDataStream2 = new MemoryStream(data)) { image2 = new Bitmap(originalBinaryDataStream2); }
此场景下,内存流originalBinaryDataStream2被关闭当退出 using 块时。随后,保存图像image2会导致GDI异常。
解决方案:
由于内存流不需要显式关闭,因此无需手动关闭它们。不过,关闭 Bitmap 对象会自动关闭关联的内存流。
Bitmap image2; using (Stream originalBinaryDataStream2 = new MemoryStream(data)) { image2 = new Bitmap(originalBinaryDataStream2); } image2.Dispose(); // Also closes the memory stream
通过处理 Bitmap,正确关闭内存流,确保图像能够无异常地保存。
以上是将图像保存到封闭的 MemoryStream 时如何避免 GDI 异常?的详细内容。更多信息请关注PHP中文网其他相关文章!