Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.12;
Скачать: CL | DM;

Вниз

Как сделать снимок кусочка экрана и работать с ним?...   Найти похожие ветки 

 
TankMan ©   (2002-10-26 15:33) [0]

Под словом "работать" понимается анализировать, что там находится, вобщем задача такая - нужно сделать снимок небольшой области на экране, например 10х10 пикселей, и если в этом кусочке будет хоть один пиксель черного цвета... ну вобщем выполнять некоторую команду... но проблема в том, что я не знаю, как делать снимки.. :(, да и вообще с графикой не работал раньше, так что, если кто сможет помочь, то примерчик небольшой был бы очень кстати...


 
Nick N A   (2002-10-27 07:22) [1]

Снимок всего экрана:

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)- взять контекст у любого окна
Удачи


 
TankMan ©   (2002-10-28 05:09) [2]

А как брать снимок только отдельного куска экрана? или например проверять тогда уж.. по координатам например 10х100 находится пиксель какого цвета?


 
TankMan ©   (2002-10-30 17:42) [3]

Так никто и не знает чтоли, как решить ту проблему, о которой я говорю?


 
©   (2002-10-30 18: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 20:01) [5]

Это ясно... ну вот есть допустим определенный кусок экрана, а вот самый главный вопрос, как узнать, какого цвета пиксел по определенным координатам, в этом снимке?


 
Андрей Прокофьев ©   (2002-10-30 20:09) [6]

см
Canvas.Pixels, Canvas.Scanline


 
TankMan ©   (2002-10-30 20:21) [7]

Спасибо посмотрю - попробую...



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

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

Наверх




Память: 0.48 MB
Время: 0.022 c
1-36102
Маришка
2002-12-03 09:39
2002.12.12
Приветик!


8-36296
frofis
2002-08-29 12:46
2002.12.12
различный вывод графики


14-36373
iNew
2002-11-20 08:56
2002.12.12
Как узнать к какому провайдеру подключен тот или иной сервер


1-36188
Roman_Tutov
2002-12-03 16:06
2002.12.12
Tread


3-36069
Calm
2002-11-26 11:03
2002.12.12
Как подключиться к БД через ADOConnection?