seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

Você não está conectado. Conecte-se ou registre-se

 » Programação Desktop » Pascal / Delphi » [tutorial] desenhando com canvas (delphi) - 4º parte

[tutorial] desenhando com canvas (delphi) - 4º parte

Ir em baixo  Mensagem [Página 1 de 1]

Kodo no Kami

avatar
master
master
e ae galera 4º parte do tutorial canvas e delphi, nessa parte vamos aprender mais algumas coisas entre elas manipular um unico pixel, para a gente manipular um unico pixel usamos o atributo Pixels esse atributo e uma array com duas posição que é X e Y entao para adicionar determinado pixel basta atribuir a cor, um pixel seria um unico ponto na imagem (a imagem em si é formada por milhares de pixel de cores diferentes)

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   form1.Canvas.Pixels[100,100] := clRed;
end;

[Você precisa estar registrado e conectado para ver esta imagem.]

um outro exemplo de um quadrado de 25 pixels (5x5=25), com as bordas vermelha e fundo azul

Código:
procedure TForm1.FormPaint(Sender: TObject);
begin
   //x1
   form1.Canvas.Pixels[100,100] := clRed;
   form1.Canvas.Pixels[101,100] := clRed;
   form1.Canvas.Pixels[102,100] := clRed;
   form1.Canvas.Pixels[103,100] := clRed;
   form1.Canvas.Pixels[104,100] := clRed;
   //y1
   form1.Canvas.Pixels[100,101] := clRed;
   form1.Canvas.Pixels[100,102] := clRed;
   form1.Canvas.Pixels[100,103] := clRed;
   form1.Canvas.Pixels[100,104] := clRed;
   //x2
   form1.Canvas.Pixels[104,101] := clRed;
   form1.Canvas.Pixels[104,102] := clRed;
   form1.Canvas.Pixels[104,103] := clRed;
   form1.Canvas.Pixels[104,104] := clRed;
   //y2
   form1.Canvas.Pixels[101,104] := clRed;
   form1.Canvas.Pixels[102,104] := clRed;
   form1.Canvas.Pixels[103,104] := clRed;
   form1.Canvas.Pixels[104,104] := clRed;
   //fundo
   form1.Canvas.Pixels[101,101] := clBlue;
   form1.Canvas.Pixels[102,101] := clBlue;
   form1.Canvas.Pixels[103,101] := clBlue;
   form1.Canvas.Pixels[101,102] := clBlue;
   form1.Canvas.Pixels[102,102] := clBlue;
   form1.Canvas.Pixels[103,102] := clBlue;
   form1.Canvas.Pixels[101,103] := clBlue;
   form1.Canvas.Pixels[102,103] := clBlue;
   form1.Canvas.Pixels[103,103] := clBlue;
end;

claro que o codigo acima eu poderia ter usado loops para facilitar as coisas

Código:
procedure TForm1.FormPaint(Sender: TObject);
var cont, cont2: integer;
begin
   //x1 e x2
   for cont := 100 to 104 do
   begin
     form1.Canvas.Pixels[cont,100] := clRed;
     form1.Canvas.Pixels[cont,104] := clRed;
   end;
   //y1 e y2
   for cont := 100 to 104 do
   begin
     form1.Canvas.Pixels[100,cont] := clRed;
     form1.Canvas.Pixels[104,cont] := clRed;
   end;
   //fundo
   for cont := 101 to 103 do
   begin
     for cont2 := 101 to 103 do
     begin
        form1.Canvas.Pixels[cont,cont2] := clBlue;
     end;
   end;
end;

[Você precisa estar registrado e conectado para ver esta imagem.]

tambem podemos pegar a cor do pixel com o atributos pixels, podemos atribuir ele para uma variavel do tipo TColor

Código:
procedure TForm1.FormPaint(Sender: TObject);
var cor: TColor;
begin
   form1.Canvas.Brush.Color := clRed;
   form1.Canvas.Rectangle(100,100,200,200);

   cor := form1.Canvas.Pixels[150,150];
   if(cor = clRed)then
   begin
     ShowMessage('o pixel na posição 150x150 é vermelho');
   end
   else
   begin
     ShowMessage('o pixel nao e vermelho');
   end;
end;

[Você precisa estar registrado e conectado para ver esta imagem.]

manipução de um unico pixel da fazer diversas coisas duplicar uma imagem, aumentar o tamanho da mesma (para aumentar uma imagem basta pegar cada pixel original substituir por 4x o tamanho original para cada pixel para nao deformar a imagem, exemplo um quadrado de 1 pixel aumentado para um quadrado de 4pixel ambos vai ser um quadrado e o segundo vai ter mesma dimensão do primeiro porem maior), podemos manipular o pixel para criar programas reconhecimento de caracter em imagens ou podemos deformar imagens como phostoshop faz, podemos manipular o pixel para reverter cores ou pintar alguma coisa em uma imagem, existem milhares de possibilidades de uso para ele, bom galera esse tutorial ainda vai ter mais algumas partes, entao ate proxima parte ^^

by kõdo no kami


_________________ASSINATURA_________________
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]

Contato:
Spoiler:

Contato:
Facebook: [Você precisa estar registrado e conectado para ver este link.]
Skype: hackerfts315
http://endoffile.umforum.net

Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum