Я пытаюсь получить разрешение изображения JPEG без декодирования файла. Я получил несколько образцов из Интернета, но ни один из них не работает должным образом. Кажется, это так, потому что многие файлы JPEG не являются стандартными, хотя любое графическое приложение (Irfan, PSP, Firefox и т. Д.) Может их открыть.
Заголовок JPEG должен был быть таким:
typedef struct _JFIFHeader
{
BYTE SOI[2]; /* 00h Start of Image Marker */
BYTE APP0[2]; /* 02h Application Use Marker */
BYTE Length[2]; /* 04h Length of APP0 Field */
BYTE Identifier[5]; /* 06h "JFIF" (zero terminated) Id String */
BYTE Version[2]; /* 07h JFIF Format Revision */
BYTE Units; /* 09h Units used for Resolution */
BYTE Xdensity[2]; /* 0Ah Horizontal Resolution */
BYTE Ydensity[2]; /* 0Ch Vertical Resolution */
BYTE XThumbnail; /* 0Eh Horizontal Pixel Count */
BYTE YThumbnail; /* 0Fh Vertical Pixel Count */
} JFIFHEAD;
Однако, когда я заглянул в один из этих нестандартных файлов, поля Xde density и Yde density оказались неправильными. Но опять же, все графические приложения могут читать этот нестандартный файл.
Кто-нибудь знает фрагмент кода Delphi, который действительно может читать все файлы JPEG?
Delphi 7, Win 7 32 bit