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!
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
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
Curtir tópico
+ 0
Responder
Posts
28/02/2004
Cebikyn
Passe suas coordenadas para esta função:
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.
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
Clique aqui para fazer login e interagir na Comunidade :)