Hola Juan. Está interesante tu intención.
Bueno, lo mío es solamente una sugerencia para probar. Lo que yo haría es lo siguiente: abrir el bmp como un archivo de acceso aleatorio (no secuencial) con un Field de longitud 1, e ir modificando los valores contenidos en cada byte en un cierto valor (por ejemplo +20). Después de la modificación hay que verificar si se pasó de 255, y si este es el caso, restarle 255 al resultado.
Ahora bien: la rutina que se encargue de la operación inversa (restar 20) al momento de poder ver el archivo, tendrá que tener en cuenta que a los resultados menores que cero habrá que sumarles 255.
Es para probarlo. Lo voy a hacer más tarde. Como te dije es olamente una sugerencia.
Saludos.