Para saber desde el principio si un fichero es una imagen (tenga la extensión que tenga) lo mejor es abrirlo en modo binario y comprobar si tiene determinada característica propia de ese archivo. Por ejemplo, los jpg siempre tienen la cadena JFIF en la 7ª posición:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var fc: File;
tf: String;
begin
tf:= StringOfChar(#32, 4);AssignFile(fc, 'C:\Imagen.jpg');
FileMode:= fmOpenRead; Reset(fc, 1);
Seek(fc, 6); BlockRead(fc, tf[1], 4); CloseFile(fc);
If tf='JFIF' Then ShowMessage('Es una imagen JPG');
end;
Cada formato de imagen tiene sus características, que se pueden averiguar con cualquier editor hexadecimal.