经常使用PictureBoxPhoto.image = Image.FromFile(pbPath);
此时要删除此图像,往往会报此文件正在被占用的错误!
采取文件流读取方式后解决此问题
/// <summary>
/// 根据图像名称获得图像(从文件流读取,所以原图像可以删除)
/// </summary>
/// <param name="PhotoPath"></param>
/// <returns></returns>
public static Bitmap GetImageFromStream(string PhotoPath)
{
Bitmap bmp = null;
try
{
FileStream fs = new FileStream(PhotoPath, FileMode.OpenOrCreate, FileAccess.Read);
byte[] theData = new byte[fs.Length];
fs.Read(theData, 0, System.Convert.ToInt32(fs.Length));
fs.Close();
System.IO.MemoryStream stream = new System.IO.MemoryStream(theData, true);
stream.Write(theData, 0, theData.Length);
bmp = new Bitmap(stream);
}
catch
{
bmp = null;
}
return bmp;
}