社区
C#
帖子详情
BitmapImage占用的图片资源如何释放?
wushang923
2010-10-19 10:08:46
造成的结果是无法删除图片,说是正在被其他进程使用。
...全文
1132
5
打赏
收藏
BitmapImage占用的图片资源如何释放?
造成的结果是无法删除图片,说是正在被其他进程使用。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wushang923
2010-10-20
打赏
举报
回复
谢谢 周药师 那是你的博客吗?
wushang923
2010-10-20
打赏
举报
回复
在某人的博客里找到了解决办法,运行成功,呵呵。
===============解决方法=============
最后发现初始化BitmapImage可以通过byte[]进行,于是只能通过将png文件读成byte[],再进行BitmapImage的初始化,就没有问题了
// Read byte[] from png file
BinaryReader binReader = new BinaryReader(File.Open(filePath, FileMode.Open));
FileInfo fileInfo = new FileInfor(filePath);
byte[] bytes = binReader.ReadBytes((int)fileInfo.Length);
binReader.Close();
// Init bitmap
BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.StreamSource = new MemoryStream(bytes);
bitmap.EndInit();
周药师
2010-10-19
打赏
举报
回复
http://hi.baidu.com/mickeysullivan/blog/item/c9ced13dd60727f6828b133c.html
绝代坏坏
2010-10-19
打赏
举报
回复
把对象dispose啊。如果用流写的数据关闭流。
liuyuting001
2010-10-19
打赏
举报
回复
1
image.Dispose();
System.GC.SuppressFinalize(image);
image
图片
解除
占用
wpf_WPF
Bitmap
Image
占用
文件
资源
无法
释放
问题
相关:http://blog.sina.com.cn/s/blog_3f2c72ea0100srdg.html场景:WPF下用
Image
控件展示
图片
;控件的
图片
源自然选用
Bitmap
Image
;
Bitmap
Image
通过Uri对象指向磁盘的某个文件。显示正常,但是这时候如果我们再有别的地方要操作这个磁盘文件,比如程序中或者其他地方,就会说
资源
已被
占用
。
资源
无法
释放
的加载方式为:_selectedC...
WPF绑定
图片
引起的文件被
占用
异常的解决方案
WPF默认的
Image
控件绑定Source后,
图片
文件会被
占用
,此时删除或者使用另一
Image
控件绑定该
图片
,将引起文件被
占用
异常。甚至当
Image
控件删除后仍会存在文件被
占用
的异常,资料给出的解释是
Image
控件没有Dispose方法导致文件未被
释放
,这一问题给
图片
绑定的便捷操作带来了很多麻烦。 解决思路:绑定
图片
时,我们从文件读取为字节并
释放
文件。创建
bitmap
图像,使用读取的字节
解决WPF
图片
占用
问题(WPF读取
图片
)
string imgpath="D:\\files..";
Bitmap
Image
bitmap
= new
Bitmap
Image
(); using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(imgpath))) {
bitmap
= new
Bitmap
Im...
C#通过数据流的方式加载
图片
通过数据流的方式加载
图片
目的:主要是为了解决使用C#加载
图片
展示后,
图片
一直被
占用
的问题,使用流的方式将
图片
转换成二进制,加载完成后,可以
释放
图片
的
占用
ps:参考网上代码,出处不可考 代码如下: //
图片
路径 var path = Path.Combine(@"C:\Users\Li\Documents", "qrcode.png"); if (File.Exists(path)) { Stream stream = File.OpenRead(path); Stream fs = Fi
WPF循环加载
图片
导致内存溢出的解决办法
程序场景:一系列的
图片
,从第一张到最后一张依次加载
图片
,形成“动画”。 生成
Bitmap
Image
的方法有多种: 1、 var source=new
Bitmap
Image
(new Uri("
图片
路径",UriKind.xxx)); 一般的场景使用这种方法还是比较方便快捷,但是对于本场景,内存恐怕得爆。 2、 var data =File.ReadAllBytes("...
C#
111,129
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章