![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать снимок кусочка экрана и работать с ним?...
TankMan © (2002-10-26 15:33:00)Под словом "работать" понимается анализировать, что там находится, вобщем задача такая - нужно сделать снимок небольшой области на экране, например 10х10 пикселей, и если в этом кусочке будет хоть один пиксель черного цвета... ну вобщем выполнять некоторую команду... но проблема в том, что я не знаю, как делать снимки.. :(, да и вообще с графикой не работал раньше, так что, если кто сможет помочь, то примерчик небольшой был бы очень кстати...
TankMan (2002-10-30 20:21:00) [1]Спасибо посмотрю - попробую...
Андрей Прокофьев (2002-10-30 20:09:00) [2]см
Canvas.Pixels, Canvas.Scanline
TankMan (2002-10-30 20:01:00) [3]Это ясно... ну вот есть допустим определенный кусок экрана, а вот самый главный вопрос, как узнать, какого цвета пиксел по определенным координатам, в этом снимке?
k (2002-10-30 18:00:00) [4]элементарно, Ватсон.
снимаем прямоугольный кусок (из стр-ры Rect:TRect);
глобальный bm:TBitmap;
Локальные var dc:HDC;
dc := GetDC(0); // канвас не обязательно создавать
bm.Width := Rect.Right - Rect.Left;
bm.Height := Rect.Bottom - Rect.Top;
BitBlt(bm.Canvas.Handle, 0,0, bm.width, bm.Height, dc, rect.left, rect.Top, SRCCOPY);
ReleaseDC(0,dc);
вот так, почти на чистом ВинАпи
должно работать
удачи
TankMan (2002-10-30 17:42:00) [5]Так никто и не знает чтоли, как решить ту проблему, о которой я говорю?
TankMan (2002-10-28 05:09:00) [6]А как брать снимок только отдельного куска экрана? или например проверять тогда уж.. по координатам например 10х100 находится пиксель какого цвета?
Nick N A (2002-10-27 07:22:00) [7]Снимок всего экрана:
Var C:TCanvas;
R:TRect;
Begin
c:=TCanvas.Create;//*
c.Handle:=GetDC(0);//* + получение контекста монитора
with Form1.Canvas do
CopyRect(ClipRect,c,ClipRect);
c.Handle:=0;//*
c.Free;//*
end;
//ClipRect - квадрат размера канвы формы
//вместо формы можно TBitMap и другие, у кого есть Canvas
//*-можно выносить из тела цикла
GetDC(HwND)- взять контекст у любого окна
Удачи