Ja, damit die Signatur bei [0] beginnt
bei [-1] die eigentliche Länge (ohne die Nullen)
und auf [-2] das Format (hab mir ersparrt das mit einem Record-Array zu bauen (
array of record Format: TImageFormat; Len: Integer; Signature: array[0..7] of Byte; end;
)
Vor allem, da Record-Konstanten sinnlos pervers hässlich sind.
Aber ginge auch mit
array[0..9]
, also [0] das Format, [1] die Länge und ab [2] die Signatur.
Bei einem statischen Array ist die zweite Ebene immer gleich groß, darum mußte aufgefüllt werden,
aber nachfolgend, mit dynamischen Arrays, geht es ohne Füllbytes.