//错误代码 Bitmap 对象或一个 图像 对象从一个文件, 构造时该文件仍保留锁定对于对象的生存期。 因此, 无法更改图像并将其保存回它产生相同的文件。
private static byte[] GetBytes (Image image) { try { if (image == null) return null; using (MemoryStream stream = new MemoryStream()) { image .Save(stream, ImageFormat.Jpeg); return stream.GetBuffer(); } } finally { if(image != null) { image.Dispose(); image = null; } } }
//修改后的 拷贝这个对象,生成一个副本,再来操作这个副本,就能够解决这个问题 ,见using语法 Dispose
private static byte[] GetBytes (Image image) { try { if (image == null) return null; using(Bitmap bitmap = new Bitmap(image)) { using (MemoryStream stream = new MemoryStream()) { bitmap.Save(stream, ImageFormat.Jpeg); return stream.GetBuffer(); } } } finally { if(image != null) { image.Dispose(); image = null; } } }