Si es por entender el formato BMP (lo cual a estas alturas de la vida con formatos mucho más potentes no es algo que tenga demasiado sentido) pase pero para llevar a buen término los proyectos (personales o no) no tiene sentido reinventar la rueda. Codificar es caro porque lleva su tiempo y luego hay que mantener el código... cuanto más código escribas más te va a costar luego mantenerlo por lo que hacer uso de librerías de terceros suele ser una opción bastante interesante.
Si tu intención es manipular la imagen echa un vistazo a
openCV. Es una librería enorme, lo se, pero tiene un montón de filtros gráficos además de utilidades para reconocimiento de imágenes y movidas varias.
Un saludo.