在C#中,能够用文件流的方法加载图片并释放资源:
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
tmpImage = Image.FromStream(fs);
this.pbShow.Image = tmpImage;
}
但是,有些文件,比如Gif图片无法用这个方法加载,所以类似的图片加载使用下面的方式进行释放资源:
using (Image image = Image.FromFile(filePath)) //用此方法释放加载的文件资源,否则多次加载占的内存还在
{
gifImage = image.Clone() as Image; //复制图像赋值
this.pbShow.Image = gifImage;
}
也能够两者结合,以下效果:
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
using (Image image = Image.FromStream(fs))
{
tmpImage = image.Clone() as Image;
this.pbShow.Image = tmpImage;
}
}
当然,前面需要对gifImag进行释放资源。