Функция Python для зеркального отображения изображения по вертикали от R до L

Я пытаюсь написать функцию python для отражения правой половины изображения в левой половине. Пока у меня есть этот код, но он работает противоположным образом (он отражает от L к R). Я знаю, что это должно быть несколько простых изменений, но сейчас у меня просто блок. Любая помощь приветствуется.

def mirrorVertical(source):
  mirrorPoint = getWidth(source) / 2
  width = getWidth(source)
  for y in range(0,getHeight(source)):
    for x in range(0,mirrorPoint):
      leftPixel = getPixel(source,x,y)
      rightPixel = getPixel(source,width - x - 1,y)
      color = getColor(leftPixel)
      setColor(rightPixel,color)

person user1729377    schedule 09.10.2012    source источник


Ответы (2)


Кажется, что вы выполняете итерацию из верхнего левого угла в середину, а не из правого угла в середину. Возможно, вы захотите попробовать range(getWidth(), mirrorPoint) для x и оставить y без изменений.

person czarlarry    schedule 09.10.2012

Прежде чем изменить цвет rightPixel, вы должны сохранить этот цвет где-нибудь, чтобы установить его на leftPixel.

Что-то типа

color_left = getColor(leftPixel)
color_right = getColor(rightPixel)
setColor(leftPixel, color_right)
setColor(rightPixel, color_left)

должен сделать трюк.

person glglgl    schedule 05.11.2012