Ciao,
a prima vista noto 2 errori nel tuo programma:
1) la larghezza in byte dell'immagine non si calcola come hai fatto tu, perché deve essere necessariamente un multiplo di 4. Per calcolarla puoi usare questa formula:

quanto è larga la tua texture?
2) nel ciclo di lettura dei pixel hai dimenticato di leggere la componente Green.