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

时间:2015-03-30 03:59:36

标签: python image for-loop flip

我正在尝试使用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)

2 个答案:

答案 0 :(得分:6)

您需要沿X轴停止一半。否则,您将所有像素交换回原始位置。

   for x in range(width // 2):

答案 1 :(得分:4)

你将一路走过图像,但是当你到达中途时,你已经翻转了图像。所以在剩下的时间里,你把它翻回原来的样子。

所以:

for x in range(width//2):