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

相关推荐
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
神仙别闹2 天前
基于C#+MySQL实现(WinForm)个人聊天室软件
c#
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车2 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁2 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
kybs19912 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
孙启超2 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int2 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
CoderYanger3 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
伞伞悦读3 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json