C#获取图像并删除图像

本文介绍了如何使用C#从文件流中读取图像,从而避免因PictureBox加载图片导致文件被占用而无法删除的问题。通过创建FileStream,读取文件到byte数组,然后转换为MemoryStream,最后创建Bitmap对象,实现安全获取和删除图像。
摘要由CSDN通过智能技术生成

经常使用PictureBoxPhoto.image = Image.FromFile(pbPath);

此时要删除此图像,往往会报此文件正在被占用的错误!

采取文件流读取方式后解决此问题

   /// <summary>
        /// 根据图像名称获得图像(从文件流读取,所以原图像可以删除)
        /// </summary>
        /// <param name="PhotoPath"></param>
        /// <returns></returns>
        public static Bitmap GetImageFromStream(string PhotoPath)
        {
            Bitmap bmp = null;
            try
            {
                FileStream fs = new FileStream(PhotoPath, FileMode.OpenOrCreate, FileAccess.Read);
                byte[] theData = new byte[fs.Length];
                fs.Read(theData, 0, System.Convert.ToInt32(fs.Length));
                fs.Close();

                System.IO.MemoryStream stream = new System.IO.MemoryStream(theData, true);
                stream.Write(theData, 0, theData.Length);
                bmp = new Bitmap(stream);  
            }
            catch
            {
                bmp = null;
            }
            return bmp;
        }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值