скорей всего проблема в том, что не учтена длина одной строки (row stride), которая может быть больше, чем разрешение по горизонтали * размер пикселя в байтах
судя по характеру смещения паттерна на каждой строке и количеству зелени внизу — я близок к правде