问题描述:创建两个窗体Form1,Form2。在Form2上放置Picturebox控件,在本地磁盘上读取一张图片在该控件上显示。
当Form2退出时(或者是退出后也可以),实现删除图片功能。这时Form1并没有推出,提示错误该文件正被某个进程使用,无法访问。奇怪的是有时候却能够删除。窗体Form2退出时,已经释放了全部资源。
当Form2退出时(或者是退出后也可以),实现删除图片功能。这时Form1并没有推出,提示错误该文件正被某个进程使用,无法访问。奇怪的是有时候却能够删除。窗体Form2退出时,已经释放了全部资源。
这样的话是有些问题.
建议将图片读入到MemoryStream中,然后
Image DamImg = Image.FromStream(ms);
Picturebox.Image = DamImg;
显示在 Picturebox 中,这样退出应该就没问题了
Image.FromStream(ByteToStream(SetImageToByteArray(ImageUrl)));
public byte[] SetImageToByteArray(string fileName)
{
byte[] image = null;
try
{
FileStream fs = new FileStream(fileName, FileMode.Open);
FileInfo fileInfo = new FileInfo(fileName);
int streamLength = (int)fs.Length;
image = new byte[streamLength];
fs.Read(image, 0, streamLength);
fs.Close();
return image;
}
catch
{
return image;
}
}
public MemoryStream ByteToStream(byte[] mybyte)
{
MemoryStream mymemorystream = new MemoryStream(mybyte, 0, mybyte.Length);
return mymemorystream;
}
public Image SetByteToImage(byte[] mybyte)
{
Image image;
MemoryStream mymemorystream = new MemoryStream(mybyte, 0, mybyte.Length);
image = Image.FromStream(mymemorystream);
return image;
}