Проблема инициализации ваших значений x и y. X должен быть инициализирован обратно в ноль непосредственно перед вторым циклом while, чтобы отсчет снова начался для ширины следующей строки. Что-то вроде:
x = 0
y = 0
#for each pixel in the Y
while (y < height):
# for each pixel in the X
x = 0 #start counting again for the next row
while (x < width):
print pix[x,y]
x = x + 1
y = y + 1
Ваш цикл останавливается, потому что в конце первой строки x = width, и вы забыли сбросить его обратно на ноль для второй итерации первого цикла while.