Nesta seção, vamos aprender como inverter sua imagem usando pixels.
Exemplo – Inverter sua imagem de cabeça para baixo
Vamos virar o gato de cabeça para baixo.
Virar a imagem de cabeça para baixo é o mesmo que criar uma imagem simétrica em relação à linha central horizontal, que é a linha preta na imagem abaixo.

# Precisamos importar o pacote PIL para manipular pixels
from PIL import Image
# Abrir a imagem do gato
img = Image.open("cat.png")
width = img.size[0]
height = img.size[1]
# Criar nova imagem com mesma largura e altura
newimg = Image.new('RGB', (width,height))
# Definir os pixels da nova imagem
for i in range(width): # Para cada coluna
for j in range(height): # Para cada linha
heightNew = height - 1 - j # Nova posição vertical do pixel
color = img.getpixel( (i, heightNew) ) # Cor da imagem original
newimg.putpixel((i,j),color) # Aplicar na nova imagem
newimg.save("Mycat.png")
Uau! Aqui está nosso novo gato depois de virar de cabeça para baixo.
Como descobrimos como definir heightNew?
heightNew = height - 1 - j
Esse é o segredo para inverter o gato. Pegamos a altura da imagem e subtraímos 1 (porque a contagem começa do zero) e o valor atual da linha (j). Isso nos dá o local espelhado.
Você pode desenhar em papel para visualizar isso melhor.
Nosso código principal é:
width = img.size[0]
height = img.size[1]
newimg = Image.new('RGB', (width,height))
for i in range(width):
for j in range(height):
heightNew = height - 1 - j
color = img.getpixel((i, heightNew))
newimg.putpixel((i,j), color)
Por exemplo, tente aplicar esse código no seguinte grupo de letras 4x4:
Depois crie a versão espelhada usando a linha horizontal como base e compare com o resultado anterior. Ficaram iguais?
Desafio – Inverta seu gato da esquerda para a direita
Agora é sua vez de inverter o gato da esquerda para a direita!
Virar a imagem da esquerda para a direita é o mesmo que criar uma imagem simétrica com relação à linha central vertical.
Preste atenção à variável widthNew e pense com calma sobre como defini-la.