当用Picturebox显示图片时是用的
Image.FromFile(ImageRul);这个方法来显示图片的,
如果这时想把图片给删除的话(File.Delete()),会报错,提示该图片正在使用中,
1,方法一,就是将该图片以流的方式加载进来,然后在赋给Picturebox,这样不存在删除的时候报错了。
调用的时候用:
Image.FromStream(ByteToStream(SetImageToByteArray(ImageUrl)));
下面是封装好的方法:
#region 将byte转换成MemoryStream类型
/// <summary>
/// 将byte转换成MemoryStream类型
/// </summary>
/// <param name="mybyte">byte[]变量</param>
/// <returns></returns>
public MemoryStream ByteToStream(byte[] mybyte)
{
MemoryStream mymemorystream = new MemoryStream(mybyte, 0, mybyte.Length);
return mymemorystream;
}
#endregion
#region 将byte转换成Image文件
/// <summary>
/// 将byte转换成Image文件
/// </summary>
/// <param name="mybyte">byte[]变量</param>
/// <returns></returns>
public Image SetByteToImage(byte[] mybyte)
{
Image image;
MemoryStream mymemorystream = new MemoryStream(mybyte, 0, mybyte.Length);
image = Image.FromStream(mymemorystream);
return image;
}
#endregion
2,方法2:Picturebox.Load();
3, 方法3:
07.//不显示图片并释放资源
08.private void button2_Click(object sender, EventArgs e)
09.{
10.
Image image = pictureBox1.Image;
11.
pictureBox1.Image = null;
12.
image.Dispose();//释放后就能正常删除
13.}