There is always a "header" section of a bmp file that is 14 bytes in size so it`s best to start reading from the 15th byte onwards. I had exactly the same problem as you many moons ago.
So...use a function call like this before your fread
:
fseek ( file, 15, SEEK_SET);