如何把指定目录下的bmp位图直接载入内存进行操作? ( 积分: 20 )

  • 主题发起人 主题发起人 kanghongchao
  • 开始时间 开始时间
K

kanghongchao

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在把一张图片导入资源,封装成res,这样的方式位图资源就在内存中了,我进行图形比对,可是页面文件的使用率直线上升,机器速度也越来越慢,是不是资源没有释放干净啊?所以我想直接把位图导入内存,请问如何操作?谢谢
 
我现在把一张图片导入资源,封装成res,这样的方式位图资源就在内存中了,我进行图形比对,可是页面文件的使用率直线上升,机器速度也越来越慢,是不是资源没有释放干净啊?所以我想直接把位图导入内存,请问如何操作?谢谢
 
你是指直接访问内存?
封入RES以后,操作系统加载程序的时候把资源也调入内存,但对程序来说并没有可以直接访问,必须创建一个TBITMAP,然后把资源读进来,用完以后再及时FREE
 
我就是这样作的,创建了tbitmap,然后进行图片的比对,然后释放bitmap.free,可是页面占用率直线上升,不知道什么原因?
 
你怀疑是释放不干净?你可以试验一下不从RES调入,而从硬盘文件调入,还是不是这样的情况?如果是,就和RES没关系了。。。
 
我做的图像比对,其实是动态的,就是通过摄像机抓桢和一张标准图像比对,一秒钟要进行1000次比对,通过路径导入位图速度不够,只能300毫秒一次。
 
我用bmp1.LoadFromFile(ExtractFilePath(ParamStr(0)) + '1.bmp');
导入位图,300毫秒一次比对,页面使用率的上升速度慢了一些,可还是会越来越高~
 
一直用BMP类没有发生你说的问题啊
如果BMP类有问题的话,下面这段代码运行以后资源就会被耗掉了,对不对:

for i := 0 to 9999
begin
b := TBitmap.Create;
b.LoadFromFile('c:/a.bmp');
b.Free;
end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部