Einzelnen Beitrag anzeigen

Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#1

Auflösung einer PNG-Datei

  Alt 15. Apr 2007, 15:50
Diese Funktion ermittelt die Auflösung einer PNG-Datei:
Delphi-Quellcode:
uses Types;

function getPNGSize(const datei: string):TSize;
var fs: TFileStream;
    tmp: longint;
begin
  fs :=TFileStream.Create(datei,fmOpenRead);
  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;
  fs.Free;
end;
Vielleicht hat ja noch jemand eine bessere Alternative für den Assemblerteil, aber es funktioniert so.

Quellen:
- http://www.w3.org/TR/2003/REC-PNG-20031110/
- Trail&Error (mit Unterstützung von HxD und Irfanview)
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat