|
var
dTime: DWord;
iCount: Integer;
AMS: TMemoryStream;
AJpg: TJpegImage;
ADlg: TOpenDialog;
sJpg: string;
begin
ADlg := TOpenDialog.Create(nil);
AMS := TMemoryStream.Create;
try
if not ADlg.Execute then
Exit;
AMS.LoadFromFile(ADlg.FileName);
SetLength(sJpg, AMS.Size);
AMS.Position := 0;
AMS.Read(sJpg[1], AMS.Size);
finally
FreeAndNil(AMS);
FreeAndNil(ADlg);
end;
dTime := GetTickCount;
iCount := 0;
while (GetTickCount - dTime) < 5000 do
begin
AMS := TMemoryStream.Create;
AJpg := TJpegImage.Create;
try
AMS.Write(sJpg[1], Length(sJpg));
AMS.Position := 0;
AJpg.LoadFromStream(AMS);
finally
FreeAndNil(AJpg);
FreeAndNil(AMS);
end;
Inc(iCount);
end;
Memo1.Lines.Add(Format('JpegFile Result: %f/s', [iCount / 5]));
end;
//上述代码打开一个640X480X24bit的Jpg图片,在Delphi和Lazarus下有超过400倍以上的性能差距,为什么?
求解.... |
|