GARANTIR DESCONTO

Fórum Cor de Pixel #217105

28/02/2004

0

Tpw ... eu to fazendo um programa q percorre todos os Pixels da tela!

daew to gravandu, por inquanto, em um ListBox, pra testar...

eu kero fazer o seguinte: pegar as coordenadas do Pixel e Gravar (isso eu jah sei fazer), e gravar a cor q está nessas coordenadas (isso eu ainda naum consegui)...
tpw ... dêem uma olhada no código!
procedure TForm1.BitBtn1Click(Sender: TObject);
var
 PT: TPoint;
begin
  PT.Y := 1;
  PT.X := 1;

  While PT.Y < 1024 do
  Begin
    PT.X := 1;
    While PT.X < 768 do
    Begin
      ListBox1.Items.Add(IntToStr(PT.X) + ´ - ´ + IntToStr(PT.Y) + ´ - ´ + IntToStr(ColorToRGB(Form1.Canvas.Pixels[PT.X,PT.Y])));
      PT.X := PT.X + 1;
    End;
    PT.Y := PT.Y + 1;
  End;

end;


mais, como vcs podem ver, eu usei ´ColorToRGB(Form1.Canvas.Pixels[PT.X,PT.Y])´

ctza q daew ele vai pegar a cor do Form...
tpw ... eu kero pegar a cor visível na tela (por exemplo, um Pixel da figura de plano e fundo do Desktop, ou um Pixel do Barra de Tarefas, etc...)

alguém saberia me dizer oq fazer, por favor, issow aki eh mto urgenti!

vlw a ajudinha aew kem conseguir ...

:P :P :P :P :P


Seccomiro

Seccomiro

Responder

Posts

28/02/2004

Cebikyn

Passe suas coordenadas para esta função:

function DesktopColor(const X, Y: Integer): TColor;
var
  c: TCanvas;
begin
  c := TCanvas.Create;
  try
    c.Handle := GetWindowDC(GetDesktopWindow);
    Result   := GetPixel(c.Handle, X, Y);
  finally
    c.Free;
  end;
end;


E mais uma coisa, ao invés de usar 1024 e 768 como constantes, vc pode usar GetSystemMetrics(SM_CXSCREEN) e GetSystemMetrics(SM_CYSCREEN), para que seu código funcione em qualquer resolução.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar