(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.
01.
import
cImage
02.
03.
def
mostra_imagem(imagem,pos,janela):
04.
"""
05.
Mostra imagem numa dada posição da janela.
06.
"""
07.
imagem.setPosition(pos[
0
],pos[
1
])
08.
imagem.draw(janela)
09.
10.
def
cria_imagem(largura,altura, r,g,b):
11.
“””
12.
Cria imagem a partir de nada...
13.
“””
14.
imagem
=
cImage.EmptyImage(largura,altura)
15.
pixel
=
cImage.Pixel(r,g,b)
16.
for
coluna
in
range(largura):
17.
for
linha
in
range(altura):
18.
imagem.setPixel(coluna,linha,pixel)
19.
return
imagem
20.
21.
def
main(largura,altura):
22.
“”” As três fases.”””
23.
# Cria janela
24.
janela
=
cImage.ImageWin(
'Toto'
,largura,altura)
25.
# Cria imagem
26.
imagem
=
cria_imagem(largura
/
3
,altura
/
2
,
255
,
0
,
0
)
27.
# Coloca imagem na janela e mostra
28.
mostra_imagem(imagem,(
50
,
100
),janela)
29.
janela.exitOnClick()
30.
31.
if
__name__
=
=
'__main__'
:
32.
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