存储约50K的JPG图片70张以后占用内存增加了7M,下一个循环70张又逐步增加7M,内存始终无法恢复到存储前的状态值,1000张以后系统基本停滞了,高手救急!procedure TSaverRecord.SavePicture;//图片存储
var
JPGPic: TJpegImage;
JPGStream: TMemoryStream;
begin
with Image1 do
begin
if Picture.Graphic = nil then
exit;
try
JPGPic := TJpegImage.Create;
JPGPic.Assign(Picture.Graphic);
//BMP格式转换JPG
JPGPic.CompressionQuality := 90;//压缩率
JPGPic.Compress;
JPGPic.JPEGNeeded;
JPGStream := TMemoryStream.Create;
JPGStream.SaveToStream(LMSM_Media);
JPGStream.Position := 0;
if JPGStream <> nil then
begin
try
ADODataSet1.append;
TBlobField(ADODataSet1.FieldbyName(Image)).LoadFromStream(LMSM_Media);//存储数据库
ADODataSet1.Post;
except
end;
end;
finally
JPGPic.Free;
JPGStream.Free;
end;
end; end;
var
JPGPic: TJpegImage;
JPGStream: TMemoryStream;
begin
with Image1 do
begin
if Picture.Graphic = nil then
exit;
try
JPGPic := TJpegImage.Create;
JPGPic.Assign(Picture.Graphic);
//BMP格式转换JPG
JPGPic.CompressionQuality := 90;//压缩率
JPGPic.Compress;
JPGPic.JPEGNeeded;
JPGStream := TMemoryStream.Create;
JPGStream.SaveToStream(LMSM_Media);
JPGStream.Position := 0;
if JPGStream <> nil then
begin
try
ADODataSet1.append;
TBlobField(ADODataSet1.FieldbyName(Image)).LoadFromStream(LMSM_Media);//存储数据库
ADODataSet1.Post;
except
end;
end;
finally
JPGPic.Free;
JPGStream.Free;
end;
end; end;
解决方案 »
- 请教如何用delphi程序在windows2003中创建系统帐户
- 如何实现TIFF图片格式转化为DJVU图片格式
- 用AdoTable怎么实现模糊查找?
- 急需delphi 6.0 注册机
- ADO里的ADOTABLE怎么连接EXCEL?
- 关于TClientSocket的问题
- 用了NMUDP构件就不能关机怎么办?急!!!
- 为什么用Tregistry的writestring 向注册表写入时会报类型不兼容,编译不能通过?
- 请问哪里可下载 dxDBgrid 呀,先谢了
- 在DELPHI5中怎样调用*.chm的帮助文件。在下深表感谢!!!
- 高手们帮帮忙!解决了一定加分!
- 我还在开发的类似PHP、ASP的平台,希望寻求建议!
用内存流是很占用内存的