关于从文件加载位图
2006-02-15 15:19
218 查看
在1.x的时候就遇到过位图没有释放造成图片文件无法使用的问题.今天使用2.0写代码的时候又发生了.
主要情况如下:
使用Bitmap b = new Bitmap("filename");创建位图.一般情况下,在b.Dispose();后可以解锁文件.
后改用using语句使其自动释放.
但在释放位图前,如果使用了Bitmap bnew = b.Clone() as Bitmap;将造成图片文件依然锁定,直到此克隆对象也调用释放语句.
现解决方法为使用创建相同大小位图,然后使用DrawImage方法绘制位图b.缺点是将会增加加载时间.优点是可以即时释放文件资源.
注:如果使用LockBits 方案直接对内存操作,进行复制,效率将大大提高.
文章来源:http://spaces.msn.com/sharkoo/Blog/cns!D8E832CE4545AF!192.entry
主要情况如下:
使用Bitmap b = new Bitmap("filename");创建位图.一般情况下,在b.Dispose();后可以解锁文件.
后改用using语句使其自动释放.
但在释放位图前,如果使用了Bitmap bnew = b.Clone() as Bitmap;将造成图片文件依然锁定,直到此克隆对象也调用释放语句.
现解决方法为使用创建相同大小位图,然后使用DrawImage方法绘制位图b.缺点是将会增加加载时间.优点是可以即时释放文件资源.
注:如果使用LockBits 方案直接对内存操作,进行复制,效率将大大提高.
文章来源:http://spaces.msn.com/sharkoo/Blog/cns!D8E832CE4545AF!192.entry
相关文章推荐
- 关于Qt下动态加载对话框(ui文件)
- 关于log4j2的重新加载,以及不同级别日志输出到不同日志文件
- 关于java文件加载和初始化顺序问题分析
- 关于LPC2200启动程序分散加载描述文件的叙述
- 关于动态加载JavaScript文件的几种方式
- 关于 未能加载文件或程序集“MySql.Web.v20 ...... 的问题
- 关于Chrome浏览器加载某些CSS文件超慢或超时的奇葩问题的解决办法
- 关于Java加载属性文件放在web容器不好使的解决办法
- 关于“未能加载文件或程序集”的解决方法
- 关于VS2008单元测试中加载配置文件的问题
- 关于keil里的分散加载文件.scf
- 关于未能加载文件或程序集“Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。试图加载格式不正确的程序的解决方案
- 关于“未能加载文件或程序集“System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项。系统找不到指定的文件”
- 关于《创建组件**失败。错误消息为**未能加载文件或程序集**或它的某一个依赖。系统找不到指定文件。》的解决方案
- 关于未能加载文件或程序集 system.web.extensions解决方法
- PHP 关于include()和require()方法加载文件的区别
- wince&evc下加载BMP位图文件
- Day29-关于类加载器在读取properties文件上的运用,轻松使用绝对路径,直接在包的根目录下进行操作
- 关于ubuntu16.04编译2进制文件时,出现“加载共享库时出错”错误的解决
- 关于bos的edit页面的文件加载顺序