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)
2 ответов:
Вам нужно остановиться на полпути вдоль оси X. В противном случае вы меняете все пиксели обратно в исходное положение.
for x in range(width // 2):
Вы проходите весь путь по изображению, но к тому времени, когда вы прошли половину пути, вы уже перевернули изображение. Поэтому, пройдя остальную часть пути, вы переворачиваете его обратно на прежнее место.
Итак:
for x in range(width//2):
Comments