(1): criação de uma janela
(2): obtenção/criação de imagens
(3): colocação das imagens na janela e sua visualização
Vejamos então o exemplo.
import cImage
def mostra_imagem(imagem,pos,janela):
"""
Mostra imagem numa dada posição da janela.
"""
imagem.setPosition(pos[0],pos[1])
imagem.draw(janela)
def cria_imagem(largura,altura, r,g,b):
“””
Cria imagem a partir de nada...
“””
imagem = cImage.EmptyImage(largura,altura)
pixel = cImage.Pixel(r,g,b)
for coluna in range(largura):
for linha in range(altura):
imagem.setPixel(coluna,linha,pixel)
return imagem
def main(largura,altura):
“”” As três fases.”””
# Cria janela
janela = cImage.ImageWin('Toto',largura,altura)
# Cria imagem
imagem = cria_imagem(largura/3,altura/2,255,0,0)
# Coloca imagem na janela e mostra
mostra_imagem(imagem,(50,100),janela)
janela.exitOnClick()
if __name__=='__main__':
main(600,400)
Analisemos o programa. Comecemos pela definição main. Ela faz o papel do nosso programa principal. Estão claramente identificadas as três fases acima referidas. Para definir a janela temos que lhe dar um nome (‘Toto’ neste caso) e as suas dimensões (largura e altura). De seguida, a definição cria_imagem é responsável por criar uma imagem simples, em que todos os pixeis são da mesma cor (r,g,b). Note-se como se cria um pixel (linha 15). Não basta indicar um tuplo com os valores das intensidades nos três canais de cor! Outro aspecto importante é o facto de estarmos a lidar com imagens 2D. Isso significa que cada pixel vai ser identificado pelas suas coordenadas em largura e em altura. Como se fosse uma matriz. Assim, navegar por uma imagem, seja para criar, analisar ou modificar, obriga, regra geral, a dois ciclos for, um dentro do outro (linhas 16-18). Ver a imagem obriga a duas coisas: definir a posição onde a imagem vai ser colocada, através da identificação explícita do seu canto superior esquerdo (linha 7 ) e, a seguir mandar desenhar (linha 8 ).
Executando este programa o resultado é a imagem que se pode ver abaixo.
Sem comentários:
Enviar um comentário