В дополнение к Jpeg информации, предоставленной в ответе @Leon ссылки на ..
GIF файлы начинаются с кодировки ASCII для "GIF89a", так что выможет использовать эту подпись для определения типа файла.Сразу же за ними следуют ширина и высота, оба значения Int16 с использованием байтового порядка с прямым порядком байтов.
PNG файлы начинаются со значения байта 89, затем следует кодировка ASCII для «PNG»на 4 других байта.Сразу после этого (со смещением 8) значения ширины и высоты имеют ширину 4 байта (я не уверен в порядке следования байтов).
BMP файлы начинаются с кодировки ASCIIдля "БМ".По смещению 18 есть значение Int32, определяющее ширину, а по смещению 22 высота будет использовать порядок байтов с прямым порядком байтов.
Вооружившись этой информацией, вы сможете написать немного кода для чтения первых 26байты файлового потока и от этого определяют тип файла вместе с шириной и высотой.