我正在尝试使用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)
答案 0 :(得分:6)
您需要沿X轴停止一半。否则,您将所有像素交换回原始位置。
for x in range(width // 2):
答案 1 :(得分:4)
你将一路走过图像,但是当你到达中途时,你已经翻转了图像。所以在剩下的时间里,你把它翻回原来的样子。
所以:
for x in range(width//2):