$$$$$$ BMP 转 JPG 然后SAVETOFILE的问题 在线等待$$$$$$

LWWL 2005-01-27 12:37:44
use
jpeg;
procedure TFmain.Timer1Timer(Sender: TObject);
Var
jpeg: TJPEGImage;
bmp: TBitmap;
i:integer;
begin
bmp:= TBitmap.Create;
try
bmp.Assign(Fmain.GetFormImage);
jpeg:= TJPEGImage.Create;
try
jpeg.Assign( bmp );
jpeg.compress;
jpeg.SaveTofile('d:\1.jpg');
finally
jpeg.free;
end;
finally
bmp.free;
end;
end;
这是个很简单的BMPTOJPG的代码 .
存文件的时候 在执行N次后 内存涨 直到内存耗尽 怎解决?
timer1.time.Interval:=1000;
能给个具体解决例子么?谢谢!
大家可已把这段代码复制到DELPHI中调试 2分钟后 看着内存就知道了
...全文
84 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
gpwyfgaopo 2005-01-27
  • 打赏
  • 举报
回复
jpeg,bmp的内存资源还没有完全释放你就又创建了,时间比较短
gpwyfgaopo 2005-01-27
  • 打赏
  • 举报
回复
jpeg,bmp的内存资源还没有完全释放你就又创建了,时间比较短
jinjazz 2005-01-27
  • 打赏
  • 举报
回复
GetFormImage里面干什么了
jinjazz 2005-01-27
  • 打赏
  • 举报
回复
就是GetFormImage得问题,这个函数的返回值是Tbitmap
function TCustomForm.GetFormImage: TBitmap;
...
begin
Result := TBitmap.Create;
try
...
except
Result.Free;
...
end;
end;

你每次调用的时候只是用assign复制了一下,并没有释放这个结果

直接用bmp:= GetFormImage;就可以了
jinjazz 2005-01-27
  • 打赏
  • 举报
回复
Var
jpeg: TJPEGImage;
bmp: TBitmap;
i:integer;
begin
bmp:= GetFormImage;
try
jpeg:= TJPEGImage.Create;
try
jpeg.Assign( bmp );
jpeg.compress;
jpeg.SaveTofile('d:\1.jpg');
finally
jpeg.free;
end;
finally
bmp.free;
end;
end;
LWWL 2005-01-27
  • 打赏
  • 举报
回复
不知道寸成流后 在把流寸成文件怎么样 哪位老兄给个例子?
LWWL 2005-01-27
  • 打赏
  • 举报
回复
gpwyfgaopo(流年) 跟时间没关系 我定时1个小时执行一次N次后 结果也是一样
jinjazz(近身剪(N-P攻略)) GetFormImage是取当前窗口图片 具体这个函数内部怎么运转的不知道
但我确定的是 SAVETOFILE的时候有问题.

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧