Simulators differ when it comes to binary file IO. Some create a header, while some (like modelsim) dont.
If you're not using modelsim, I cant help. But if you're using modelsim you can write/read characters directly to/from files to get the individual bytes. From there you can analyse the header and read the bitmap data directly into an array.