Python-Перевернуть Изображение По Горизонтали, Используя Для Цикла



Я пытаюсь перевернуть изображение по горизонтали пиксель за пикселем, используя for-loops. Если возможно, попытайтесь исправить то, что у меня есть, а не предлагать совершенно другой подход (даже более эффективный или питонский), чтобы помочь мне и другим учиться на моих ошибках. Спасибо за любую помощь.



def flip(img):
width = img.size[0]
height = img.size[1]
for y in range(height):
for x in range(width):
left = img.getpixel((x, y))
right = img.getpixel((width - 1 - x, y))
img.putpixel((width - 1 - x, y), left)
img.putpixel((x, y), right)
570   2  

2 ответов:

Вам нужно остановиться на полпути вдоль оси X. В противном случае вы меняете все пиксели обратно в исходное положение.

   for x in range(width // 2):

Вы проходите весь путь по изображению, но к тому времени, когда вы прошли половину пути, вы уже перевернули изображение. Поэтому, пройдя остальную часть пути, вы переворачиваете его обратно на прежнее место.

Итак:

for x in range(width//2):

Comments

    Ничего не найдено.