Форум: "Основная";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];
ВнизКак определить цвет пикселя. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c