Hallo KodeZwerg, ich war so frei mal Deinen Code durch ChatGPT "verbessern" zu lassen, ging in nur zwei Steps:
Interessanter Ansatz der leider manche Signaturen von meinem original komplett "weg-optimiert"
@himitsu:
Cooler Ansatz, das muss ich dringend mal testen wie das bei den verschieden langen Signaturen aufgefüllt mit Nullen klappt.
TImageSignature = array[-2..7] of Byte;
Das muss ich erstmal verdauen das da ein negativer Startindex steht.
(Ord(TImageFormat.BMP), 2, $42, $4D, 0, 0, 0, 0, 0, 0),
und wie sowas funktionieren soll mit den Nullen die nicht zur Signatur gehören.
Delphi-Quellcode:
if CompareMem(@signature[0], @[$FF, $D8, $FF, $E1], 4) and CompareMem(@signature[6], @[$45, $78], 2) then
Result := 0 // JPEG
(Ord(TImageFormat.JPEG), 6, $FF, $D8, $FF, $E1, $45, $78, 0, 0),
hier kann ich schonmal sagen ist ein Fehler unterlaufen, der zweite Teil fängt bei Offset 6 an, wo da Nullen stehen.
Danke auf jeden Fall für die Verschönerung meines PoC!