如何提高这段代码的效率?现在每次载入要等一会儿才行。我要操作好多图片,该怎么办,我的图片都很大。(1792*1200*16M jpg文件)(50分)

G

gouer

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TMainFrm.JpgToBmp(szFilename:string);
var
Jpg:Tjpegimage;
bmp:Tbitmap;
begin
Jpg:=Tjpegimage.Create;
bmp:=Tbitmap.create;
try
Jpg.LoadFromFile(szFilename);
except
Jpg.Free;
Exit;
end;
Bmp.Width:=Jpg.Width;
Bmp.Height:=Jpg.Height;
Bmp.Canvas.Draw(0,0,Jpg);//这里等的时间最长
Jpg.Free;
CurImage.Picture.Bitmap:=bmp;
bmp.free
end;
 
这段代码要实现什么功能?直接将 JpegImage Assign 给 Bitmap 不行吗?
 
将:
Bmp.Canvas.Draw(0,0,Jpg);//这里等的时间最长
改为:
Bmp.Assign(Jpg);
从我个人的经验看来,这样改后,应该是很快的。
 
我试过了,Bmp.Assign(Jpg);等待的时间好像更加长了
 
直接 curImage.Picture.LoadFromFile('e:/myjpeg.jpg'); 算了。用 Jpeg 格式本来就是
要压缩图片文件大小的,你的文件应该尽量压缩之后再使用吧,压缩了还有 16M?我想光读
取文件本身都很花时间了。
 
用空闲时间转换。
 
tp gouer :
你的问题应该说并没有太好的解决方法!
JPG图象本身就是压缩过的,当你载入时,还有一个解压缩的过程,速度当然会很慢!
其实大图象的加载即使是PHOTOSHOP这样的专业图象处理软件,速度也很慢,唯一的
方法是你首先将JPG转换为BMP,然后加载!
 
别说你了,就是用Photoshop打开大图也得老半天。
 
:(
用 Apple Computer 吧
 
接受答案了.
 
顶部