Il y a toujours une section "d'en-tête" d'un fichier BMP qui a une taille de 14 octets, il est donc préférable de commencer à lire à partir du 15e octet. J'ai eu exactement le même problème qu'il y a de nombreuses lunes.
Alors ... utilisez un appel de fonction comme celui-ci avant votre fread
:
fseek ( file, 15, SEEK_SET);