Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: 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 вся ветка

Текущий архив: 2004.05.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
3-1083681273
tlan
2004-05-04 18:34
2004.05.30
RecordSet из DLL


4-1082118280
juiceman
2004-04-16 16:24
2004.05.30
Перехватывать ВСЕ сообщения


8-1080147255
Beginner1
2004-03-24 19:54
2004.05.30
Как увеличить TImage?


3-1083599096
Крутыш
2004-05-03 19:44
2004.05.30
Тормаза при перемещениях


4-1082535338
MetalFan
2004-04-21 12:15
2004.05.30
как вытащить окно на передний план и ...