sábado, 28 de novembro de 2009

Problema 7.10

Comparando com o problema 7.8 pouco há a dizer. Tudo se resume à gestão dos pixeis que devem ter o mesmo valor nas posições simétricas relativamente ao eixo dos xs.


import cImage

def espelho_v_s(imagem_fich):
"""Faz o espelho vertical de uma imagem.
Usa a parte superior."""
imagem = cImage.FileImage(imagem_fich)
largura = imagem.getWidth()
altura = imagem.getHeight()

nova_imagem = cImage.EmptyImage(largura,altura)
for coluna in range(largura):
for linha in range(altura/2):
pixel = imagem.getPixel(coluna, linha)
nova_imagem.setPixel(coluna,linha,pixel)
nova_imagem.setPixel(coluna,altura - linha - 1,pixel)
return nova_imagem


def main710(nome_fich):
# Prepara
imagem = cImage.FileImage(nome_fich)
largura = imagem.getWidth()
altura = imagem.getHeight()
# Converte
nova_imagem = espelho_v_s(nome_fich)
# Cria janela
janela = cImage.ImageWin('Espelho Vertical Superior',2*largura ,altura )
# Mostra
imagem.draw(janela)
nova_imagem.setPosition(largura,0)
nova_imagem.draw(janela)
# Termina
janela.exitOnClick()

if __name__ == '__main__':
main710('/tempo/imagens/duck3.jpg')


A respectiva imagem:


Sem comentários:

Enviar um comentário