C#中加载图片的资源释放

在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进行释放资源。

相关推荐
枕星而眠21 小时前
C++ 核心语法精讲:auto / 模板 / 命名空间 / 动态内存 从用法到面试
开发语言·c++·面试
沐知全栈开发1 天前
jEasyUI 创建异步提交表单
开发语言
码完就睡1 天前
C语言——结构体的内存存储规则
c语言·开发语言
敲代码的瓦龙1 天前
Android?广播!!!
android·java·开发语言·android-studio
磊 子1 天前
1.2内存的存储金字塔
java·开发语言·spring·操作系统
yoyo_zzm1 天前
四大编程语言对比:C/C++/C#/PHP
c++·c#·php
wjs20241 天前
Bootstrap5 提示框(Tooltip)
开发语言
逆境不可逃1 天前
Hello-Agents 第二部分-第四章总结:智能体经典范式构建-包含习题解析和Java版
java·开发语言·javascript·人工智能·分布式·agent
springXu1 天前
windows arm64上的VS CODE的GoLang环境的搭建
开发语言·后端·golang
ChoSeitaku1 天前
08_抽象_接口_final关键字_多态
java·开发语言