Python - 使用 For 循环水平翻转图像

Python - Flip Image Horizontally Using For Loop

我正在尝试使用 for 循环逐个像素地水平翻转图像。如果可能,尝试纠正我所得到的,而不是提供一种完全不同的方法(即使更有效或 pythonic),以帮助我和其他人从我的错误中吸取教训。谢谢你的帮助。

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)

您需要在 X 轴的中途停下来。否则你将所有像素交换回它们的原始位置。

   for x in range(width // 2):

您一直在穿过图像,但是当您穿过一半时,您已经翻转了图像。所以在剩下的路途中,你把它翻回原来的样子。

所以:

for x in range(width//2):