Вниз
Скачать: CL | DM;

Как определить цвет пикселя.   Найти похожие ветки 

 
Dhg   (2004-05-14 22:30) [0]

Здорова.
Люди, кто знает не поленитесь писануть плиз...
Вот например если использовать getcursorpos и по нему на мемо например скидывать цвет. Конечно, понимаю что пиксели не единого цвета содержания могут быть, но всё таки, как говориться "кто чем может".


 
Style ©   (2004-05-14 22:44) [1]

Пиксель чего???
Можно взять точку с определенного Device Context"a

function ColorRefToHTMLColor(Clr: COLORREF): string;
begin
result := "#" +
IntToHex(GetRValue(Clr),2) +
IntToHex(GetGValue(Clr),2) +
IntToHex(GetBValue(Clr),2);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
Clr: COLORREF;
Pt: TPoint;
Str: string;
begin
GetCursorPos(Pt);

Clr := GetPixel(GetDC(HWND_DESKTOP),Pt.x,Pt.y);
Str := "TColor: " + ColorToString(Clr) + " HTML:" + ColorRefToHTMLColor(Clr);

Memo1.Lines.Text := Str;
end;


 
Игорь Шевченко ©   (2004-05-14 22:50) [2]

Глючит, конечно, но в первом приближении пытается работать, отлаживать лень:

unit main;

interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ExtCtrls;

type
 TfMain = class(TForm)
   Shape1: TShape;
   Timer: TTimer;
   procedure TimerTimer(Sender: TObject);
 end;

var
 fMain: TfMain;

implementation

{$R *.dfm}

procedure TfMain.TimerTimer(Sender: TObject);
var
 Wnd: HWnd;
 CursorPos: TPoint;
 DC: HDC;
 Pixel: DWORD;
begin
 GetCursorPos(CursorPos);
 Wnd := WindowFromPoint(CursorPos);
 if IsWindow(Wnd) then begin
   MapWindowPoints(HWND_DESKTOP, Wnd, CursorPos, 1);
   DC := GetWindowDC(Wnd);
   try
     Pixel := GetPixel(DC, CursorPos.X, CursorPos.Y);
     Shape1.Brush.Color := Pixel;
   finally
     ReleaseDC(Wnd, DC);
   end;
 end;
end;

end.


Таймер установлен на 300 миллисекунд.


 
Dhg   (2004-05-14 22:50) [3]

to Style
RESPECT.
two all
Ну а другие способы найдётся?...


 
Dhg   (2004-05-14 22:52) [4]

2 Игорь Шевченко
RESPECT



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
1-1084778350
Snipers
2004-05-17 11:19
2004.05.30
MessageDlg - не хочет работать


3-1084332193
чайник1
2004-05-12 07:23
2004.05.30
Как записать картинки типа jpg и gif в базу


4-1082030697
mich
2004-04-15 16:04
2004.05.30
WNetGetUniversalName


1-1084448738
DimonXXX
2004-05-13 15:45
2004.05.30
Проблема с QReport //Access violation ad address YYYYYYYY


7-1082974734
Andrey15777
2004-04-26 14:18
2004.05.30
Запятая при нажатии клавиши . на нумпаде




   Наверх