Было бы полезно подумать об этом в обратном порядке.
Например, начиная с верхнего левого угла и двигаясь по часовой стрелке, вы будете двигаться вдоль верхнего ряда, затем вниз по правой стороне, вдоль нижнего и вверх по левому краю до пикселя под начальной точкой.
Затем двигайтесь по второму ряду и продолжайте движение по спирали.
В зависимости от размеров изображения у вас будет либо один столбец пикселей, либо один ряд пикселей, и вы будете двигаться либо вверх / вниз, либо влево / вправо.
С этой конечной точки вы можете затем выполнить свои шаги назад и обработать все пиксели, как вам нужно.
Чтобы определить исходную позицию математически, вам нужно знать ширину / высоту изображения, а также, на каком пикселе вы хотите закончить и в каком направлении вы хотите двигаться, когда доберетесь до последнего пикселя.