Buscar

Aparição de imagem com pixels alternados.

Código

{Seguinte essa parada faz com que uma imagem que esteja no componente Image apareça na tela como uma espécie de fadein fade out. No delphi vc pode fazer da seguinte forma:}

procedure TFrmPrincipal.Criar(Arquivo : string; tx, ty : integer);
var p      : array[1..800,1..600] of boolean;
    x,y,td : integer;
begin
  FrmPrincipal.memoDescanso.Clear; // criar objeto memoDescando -> TMemo no FrmPrincipal

  for x:=1 to tx do
  for y:=1 to ty do
  p[x,y]:= false;

  td:=1;
  while td <= tx*ty do                                
  begin
    x:=random(tx);
    y:=random(ty);
    if not p[x,y] then
    begin
      p[x,y]:=true;
      FrmPrincipal.memoDescanso.Lines.Add(inttostr(x));
      FrmPrincipal.memoDescanso.Lines.Add(inttostr(y));
      td:=td+1;
    end;
  end;
  FrmPrincipal.memoDescanso.Lines.SaveToFile(Arquivo);
end;

procedure TFrmPrincipal.PegarPosicao(Arquivo : string; memo : TMemo);
begin
  memo.Clear;
  memo.Lines.LoadFromFile(Arquivo);
end;

procedure TFrmPrincipal.RandomFigura(Frm : TForm; IM : TImage; memo : TMemo; Mostrar : boolean; Cor : TColor);
var td, x, y : integer;
begin
  td:=1;

  while td<= 2* (IM.width*IM.height) do   //dobro de X x Y
  begin
    x:= strtoint(memo.Lines.Strings[td-1]);
    y:= strtoint(memo.Lines.Strings[td]);
    if Mostrar then
    Frm.canvas.Pixels[x+ IM.Left ,y+  IM.Top]:= IM.Picture.Bitmap.Canvas.Pixels[x,y]
    else
    Frm.canvas.Pixels[x+ IM.Left ,y+  IM.Top]:= Cor;

    td:=td+2;
  end;
end;

///////////////////////////////////////////////////////////////////
{
Como utilizar:
inserir componente MemoDescnado - TMemo
inserir componente Image1            - TImage  (coloca uma figura dentro dele) e visible FALSE nao esquece cara
sugestao comece com uma imagem pequena tipo 200x90

1 passo:
  criar os pontos de aparição (basta fz 1 vez em todo o sistema)
  FrmPrincipal.Criar('pontos.adr', Image1.Width, Image1.Height);

2 passo:
  Uma vez gravado o arquivo, ler os pontos de aparição para dentro de um memo que deve ser criado no formulário qq
  FrmPrincipal.PegarPosicao('pontos.Adr', FrmPrincipal.memoDescanso);

3 passo
  FrmPrincipal.RandomFigura( FrmPrincipal, Image1, FrmPrincipal.memoDescanso, false, clBtnFace);
  end;

  FrmPrincipal.RandomFigura(FrmPrincipal, Image1, FrmPrincipal.memoDescanso,true, clBlack);

Vc pode plotar a figura em qq formulário, mudando o nome do formulário do RandomFigura(nome_form, nome_image, frmPrincipal.memoDescanso, False, clBtnFace)

qq coisa manda e-mail pra mim adrianosistemas@yahoo.com.br
adrianosistemas@hotmail.com (msn)  falou
}

 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Object pascal
Adicionada dia: 21/05/04
Por: Adriano Nogueira Reis
Visualizada: 5856 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009