![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать цвет пиксела на экране в определенных координатах?
ViRUS_1 © (2003-01-12 04:51:00)Есть x, y (координаты на экране). Нужно узнать какого цвета этот пиксел. Этот пиксел может быть за пределами окна.
ViRUS_1 (2003-02-01 10:16:00) [1]Всем большое спасибо
Zakus (2003-01-13 16:31:00) [2]Если надо присвоить пикселю цвет в RGB -
canvas.pixel[x,y] := RGB(r,g,b)
R,G,B - целые от 0 до 255.
Zakus (2003-01-13 16:26:00) [3]Можно узнать цвет пикселя в RGB (красный, зелёный, синий).
Для этого есть методы GETRVALUE(canvas.pixel[x,y])для красного
GETGVALUE(canvas.pixel[x,y])для зелёного
GETBVALUE(canvas.pixel[x,y])для синего
vidiv (2003-01-13 09:39:00) [4]
function GetScreenPixel(x,y:integer):TColor;
var dc:hdc;
begin
dc := GetDC(0);
result := GetPixel(dc,x,y);
ReleaseDC(0);
end;
Возможно цвет будет нивертирован...
vidiv (2003-01-13 09:38:00) [5]function GetScreenPixel(x,y:integer):integer; {не TCOLOR}
var dc:hdc;
begin
dc := GetDC(0);
Result := GetPixel(dc,x,y);
ReleaseDC(0);
end;
Mihey (2003-01-12 17:25:00) [6]Нужно использовать API, конкретно - получить контекст экрана:
VAR ScreenDC: hDC;
BEGIN
ScreenDC := GetDC(0); {получить контекст экрана}
// Тут делаем что-нить
ReleaseDC(0,ScreenDC); {освободить контекст}
END;
А далее функции API:
function GetPixel(DC: HDC; X, Y: Integer): Longint;
Она возвращает цвет в RGB, но что-то не понимаю, как с ним потом работать. Если надо проще, то копируй экран в изображение и работай далее с ним как с канвой. Если нужен пример копирования, то можешь сообщить мне на мыло.
Rouse_ (2003-01-12 07:32:00) [7]Изображение.Canvas.Pixels[x,y];
Желаю успехов