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!