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

Participe do fórum, é rápido e fácil

seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

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

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

Kodo no Kami

Kodo no Kami
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;

[Tens de ter uma conta e sessão iniciada para poderes visualizar 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;

[Tens de ter uma conta e sessão iniciada para poderes visualizar 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;

[Tens de ter uma conta e sessão iniciada para poderes visualizar 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

https://endoffile.umforum.net

Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos