C#图片加载与内存释放

以PictureBox为例:

方法1
pictureBox1.Image = Image.FromFile(@"F:\photo\电子签名\1083.gif");

用 Image.FromFile取图片时,这个方法会锁定图片文件。有时候会出现内存溢出的问题。在频繁更换图片或需要对图片本身操作时,不推荐使用。

方法2(推荐)

在Properties下Resources.resx中双击,添加资源,资源包括使用的图片、音视频(在resource中添加的资源就不需要考虑路径的问题)

资源文件在文件路径下Resources文件夹下

pictureBox1.Image = Properties.Resources._1062;

注:资源文件不能以数字开头命名

方法3
//创建一个Bitmap对象,指向要加载的图片
Bitmap map = new Bitmap(@"F:\photo\电子签名\1083.gif");
pictureBox1.Image = map;
方法4

通过流来加载图片

string fileName = @"F:\photo\电子签名\1083.gif";
FileStream fs = new FileStream(fileName,FileMode.Open);
byte[] byData = new byte[fs.Length];
fs.Read(byData,0,byData.Length);
fs.Close();
MemoryStream ms = new MemoryStream(byData);
Bitmap img = new Bitmap(ms);
pictureBox1.Image = img;

该方法将本地的图片文件转为字节流,保存在内存流中,picturebox中保存的是内存中的数据,所以此时对本地图片进行操作,如删除本地图片,是完全没有问题的。

该方法也可以封装为一个获取位图图片的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值