Einzelnen Beitrag anzeigen

Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Auflösung einer PNG-Datei

  Alt 15. Apr 2007, 15:02
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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat