Hi,
Ich würde um den FileStream einen Resourcenschutzblock machen.
Auch würde ich den Schreibstil der Prozedur an einigen Stellen anders machen und außerdem ein Standardresultat vorgeben (mit -1, -1 z.B.).
Delphi-Quellcode:
uses Types;
function GetPNGSize(
const FileName:
string): TSize;
var
Fs: TFileStream;
Tmp: Longint;
begin
Result.Cx := -1;
Result.Cy := -1;
Fs := TFileStream.Create(FileName, fmOpenRead
or fmShareDenyNone);
try
Fs.Seek($10, soFromBeginning);
Fs.
Read(Tmp, 4);
asm
MOV EAX,Tmp
BSWAP EAX
MOV Tmp,EAX
end;
Result.Cx := Tmp;
Fs.
Read(Tmp, 4);
asm
MOV EAX,Tmp
BSWAP EAX
MOV Tmp,EAX
end;
Result.Cy := Tmp;
finally
Fs.Free;
end;
end;
mfG
mirage228