DELPHI做图片缩放上传. 我用Delphi的IDftp 写了个图片上传程序,但上传速度不理想,想在上传前对图片进行处理(如缩放/压缩),我把这些加进去,发现程序占用内存很多(200M),上传完后发现程序占用的内存没有完全释放(还有150M).有谁能帮忙给个思路?谢谢!~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ftp没有办法吧. 你又不要求在上传过程中进行显示. 占200M 就不知你传的文件有多大了. ftp没有办法吧. 你又不要求在上传过程中进行显示. 占200M 就不知你传的文件有多大了. 哪是你的程式有Bug, 和其它的無關, 請你花點時間看一下有哪些地方沒release.另如果你使用了component 來做的話, 也要看該component to :helodd我图片不用显示,但他是一张接一接传的,我同时开了五个线程. to : heloddtry bmp := TBitmap.Create; bmp1 := TBitmap.Create; J := TJpegImage.Create; LStream := tmemorystream.Create(); bmp := LoadGraphicsFile(FrmLogin.FileListPath[FTimeout].Strings[number] + FrmLogin.FileListName[FTimeout].Strings[number]); MaxWH := max(j.Width, j.Height); { 图片缩放 } if MaxWH > 1280 + 200 then begin seRax := (1280 / MaxWH) + 0.1; bmp1.Width := Trunc(seRax * j.Width); bmp1.Height := Trunc(seRax * j.Height); SetStretchBltMode(bmp1.Canvas.Handle, HalfTone); stretchblt(bmp1.Canvas.Handle, 0, 0, bmp1.Width, bmp1.Height, j.Canvas.Handle, 0, 0, j.Width, j.Height , SRCCOPY); bmp1.PixelFormat := pf24bit; J.Assign(bmp1); J.CompressionQuality := 95; J.Compress; sleep(100); J.SaveToStream(LStream); IdFTP1.Put(LStream,FrmLogin.FileListName[FTimeout].Strings[number]);finally J.Free; bmp.Free;bmp1.Free; FreeAndNil(LStream);//LStream.Free;end;这是我缩放的主要代码,用到的都释放了呀. treeview 节点数值的问 推荐好书就给分 ADO连不上Excel阿~~,求教,在线等待 组件开发,问题多多呀,高手请进 小弟有礼了,问个弱智问题“奇怪,表ID值居然始终为0。是怎么回事?” 哪位知道有好用的能识别图片上的文字这类的软件吗? 怎么提高三层程序的运行速度啊?添加一条记录速度好慢啊。 求救~~~~我想要拷贝整个目录下文件(包括子目录)的代码,谁帮帮我啊~~ 见鬼了!!我的WIN2000的riched32.dll只有4K.复制一个正常的替换后,自己立刻就变成4k!晕呀!!在线给分!! 我是菜鸟,我问谁啊??? 招DELPHI(郑州) 非常着急 请高人指点
另如果你使用了component 來做的話, 也要看該component
我图片不用显示,但他是一张接一接传的,我同时开了五个线程.
try
bmp := TBitmap.Create;
bmp1 := TBitmap.Create;
J := TJpegImage.Create;
LStream := tmemorystream.Create();
bmp := LoadGraphicsFile(FrmLogin.FileListPath[FTimeout].Strings[number] + FrmLogin.FileListName[FTimeout].Strings[number]);
MaxWH := max(j.Width, j.Height); { 图片缩放 }
if MaxWH > 1280 + 200 then
begin
seRax := (1280 / MaxWH) + 0.1;
bmp1.Width := Trunc(seRax * j.Width);
bmp1.Height := Trunc(seRax * j.Height);
SetStretchBltMode(bmp1.Canvas.Handle, HalfTone);
stretchblt(bmp1.Canvas.Handle, 0, 0, bmp1.Width, bmp1.Height,
j.Canvas.Handle, 0, 0, j.Width, j.Height , SRCCOPY);
bmp1.PixelFormat := pf24bit;
J.Assign(bmp1);
J.CompressionQuality := 95;
J.Compress;
sleep(100);
J.SaveToStream(LStream);
IdFTP1.Put(LStream,FrmLogin.FileListName[FTimeout].Strings[number]);
finally
J.Free;
bmp.Free;bmp1.Free;
FreeAndNil(LStream);//LStream.Free;
end;
这是我缩放的主要代码,用到的都释放了呀.