c# – 在System.Drawing.Image.Save的GDI中发生一个通用错误
·
下面方法不能不能返回Image类型,否则会遇到标题的错误。因为【从Stream加载图像时,必须在图像的整个生命周期内保持流打开】,转换后的Image用到的流是streamBitmap,如果只返回image类型,也就意味着跳出了using (var streamBitmap = new System.IO.MemoryStream(bitmapData))块,流被关闭,再在外部执行Image.Save时就会有异常。
参阅MSDN Image.FromStream.
/// <summary>
/// 将图片Base64字串表示转换为图片类型文件,并保存到本地。
/// </summary>
/// <param name="imageBase64Text">图片Base64字串表示</param>
/// <param name="saveFullPath">文件保存位置完整路径</param>
public void Base64ToImage(string imageBase64Text,string saveFullPath)
{
byte[] bitmapData = new byte[imageBase64Text.Length];
bitmapData = Convert.FromBase64String(imageBase64Text);
Image img;
using (var streamBitmap = new System.IO.MemoryStream(bitmapData))
{
using (img = Image.FromStream(streamBitmap))
{
img.Save(saveFullPath);
}
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)