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.

01.import cImage
02. 
03.def espelho_v_s(imagem_fich):
04.    """Faz o espelho vertical de uma imagem.
05.    Usa a parte superior."""
06.    imagem = cImage.FileImage(imagem_fich)
07.    largura = imagem.getWidth()
08.    altura = imagem.getHeight()
09. 
10.    nova_imagem = cImage.EmptyImage(largura,altura)
11.    for coluna in range(largura):
12.        for linha in range(altura/2):
13.            pixel = imagem.getPixel(coluna, linha)
14.            nova_imagem.setPixel(coluna,linha,pixel)
15.            nova_imagem.setPixel(coluna,altura - linha - 1,pixel)
16.    return nova_imagem
17.     
18.     
19.def main710(nome_fich):
20.    # Prepara
21.    imagem = cImage.FileImage(nome_fich)
22.    largura = imagem.getWidth()
23.    altura = imagem.getHeight()
24.    # Converte
25.    nova_imagem = espelho_v_s(nome_fich)
26.    # Cria janela
27.    janela = cImage.ImageWin('Espelho Vertical Superior',2*largura ,altura )
28.    # Mostra
29.    imagem.draw(janela)
30.    nova_imagem.setPosition(largura,0)
31.    nova_imagem.draw(janela)
32.    # Termina
33.    janela.exitOnClick()
34.     
35.if __name__ == '__main__':
36.    main710('/tempo/imagens/duck3.jpg')


A respectiva imagem:


Sem comentários:

Enviar um comentário