Al final encontré el error. Lo comparto por si a algún compañero le interesa:
Al correr leer imagen, para cada lectura de pixel, en vez de inicializarlo, ejecutaba un shift left de 8 bits para cada lectura, dejando un byte que en valor debería ser 0 (debido a los << 8) pero que no estaba inicializado.
Para solucionarlo, previo a la lectura de los bytes de cada pixel, inicializo su valor en 0.
Espero le sirva a alguien. Saludos!
Al correr leer imagen, para cada lectura de pixel, en vez de inicializarlo, ejecutaba un shift left de 8 bits para cada lectura, dejando un byte que en valor debería ser 0 (debido a los << 8) pero que no estaba inicializado.
Para solucionarlo, previo a la lectura de los bytes de cada pixel, inicializo su valor en 0.
Espero le sirva a alguien. Saludos!