Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2

Следить за областью экрана

25.03.2014, 23:55. Показов 2053. Ответов 17

Студворк — интернет-сервис помощи студентам
Нужна помощь, искал искал так и не нашел может кто подкинет пример или документацию, задача такая берем область 50х50 пикселей например и смотрим есть ли сдвиг по спектру в этой области к красному например.
Буду очень признателен за помощь.

Добавлено через 23 часа 2 минуты
ап!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2014, 23:55
Ответы с готовыми решениями:

Ограничить движение курсора определённой областью экрана
Нужно написать такую программу: Ограничить движение курсора определённой областью экрана. Что-то начал, но дальше что делать, пока не...

Как следить за ссылками?
Здравствуйте. Недавно упала посещаемость на моем небольшом сайте. Я предположил, что потерялись одна или несколько ссылок на него....

Следить за изменением файла
Доброго времени суток! Есть текстовый документ, который изменяется в следствие некоторых событий. Возможно ли написать программу, которая...

17
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
26.03.2014, 00:15
Цитата Сообщение от ntlinuxnt Посмотреть сообщение
есть ли сдвиг по спектру
Сдвиг относительно чего?
1
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
26.03.2014, 01:59
Сдвиг относительно чего?
Я бы даже спросил "Сдвиг чего относительно чего".
P.S. Хотя скорее всего ТС нравится "умное слово" спектр, вот он и употребляет его где попало и как попало.
1
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
26.03.2014, 19:37  [ТС]
Цитата Сообщение от FIL Посмотреть сообщение
Сдвиг относительно чего?
Цитата Сообщение от northener Посмотреть сообщение
Я бы даже спросил "Сдвиг чего относительно чего".
P.S. Хотя скорее всего ТС нравится "умное слово" спектр, вот он и употребляет его где попало и как попало.
Ребят я не правильно выразился наверное, ну есть у нас область 50х50 пикселей и надо следить за ней много в ней красного и выше или нет. В общем есть ли сдвиг к красному если в этой области преобладает красный то возвращать результат, а вы вместо того что бы исправлять мою неграмотность в отношении этого слова, лучше бы помогли.И все же спасибо.
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
26.03.2014, 20:03
Цитата Сообщение от ntlinuxnt Посмотреть сообщение
много в ней красного и выше или нет

Еще раз: много и выше - это сколько? И с чем все это сравнивать?
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
26.03.2014, 20:33  [ТС]
Цитата Сообщение от FIL Посмотреть сообщение
Еще раз: много и выше - это сколько? И с чем все это сравнивать?
Какая разница сколько, сколько это я задаю сам, сравнивать с тем что должно быть по умолчанию то есть красного там минимум.
0
Модератор
 Аватар для FIL
3492 / 2614 / 742
Регистрация: 19.09.2012
Сообщений: 7,977
26.03.2014, 20:53
Цитата Сообщение от ntlinuxnt Посмотреть сообщение
сравнивать с тем что должно быть по умолчанию
Так возьми значение по умолчанию и сравнивай его с тем, что имеется там в нужный момент времени.
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,609
26.03.2014, 21:17
Цитата Сообщение от ntlinuxnt Посмотреть сообщение
Какая разница сколько, сколько это я задаю сам
Интересно в каких единицах это "сколько" измеряется?
0
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
27.03.2014, 19:32  [ТС]
Цитата Сообщение от FIL Посмотреть сообщение
Так возьми значение по умолчанию и сравнивай его с тем, что имеется там в нужный момент времени.
Мне функция нужна которая следит за областью.
Цитата Сообщение от northener Посмотреть сообщение
Интересно в каких единицах это "сколько" измеряется?
R G B по R

Добавлено через 1 минуту
http://www.autoitscript.com/au... ecksum.htm
http://www.autoitscript.com/au... Search.htm
Что то такое только для Delphi
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
28.03.2014, 12:37
Лучший ответ Сообщение было отмечено ntlinuxnt как решение

Решение

А че ему ее делать то? Я собирал программу что на картике, шкала и три ползунка, ползунками задаю цвет панели и значение по RGB- отображаю рядом в лейблах.

Ему цвет я понял тока по шкале R снять нужно или чо? Цвет красного показывает у меня в верхнем лейбле в цифрах.

Ну ему тоже самое тока наоборот цвет считать с какого-то пикселя можно или массива определенных пикселей видимо с эрана монитора я понял, затем видимо он этот же кусок экрана снова отскриншотит и снова сверит по R- шкале и вычислит на скока изменилась интенсивность красного оттенка?

Лови вобщем что на картинке, да пиши уже код какой нужен, я так и непонял.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var
  Form1: TForm1;
  r, g, b: Integer; //переменные для значений тракбара
  //TColor можно
implementation
 
{$R *.dfm}
 
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  //красный
  r := TrackBar1.Position;
  Label1.Caption := 'R ' + IntToStr(r);
  Panel1.Color := RGB(r, g, b);
end;
 
procedure TForm1.TrackBar2Change(Sender: TObject);
begin
  //зеленый
  g := TrackBar2.Position;
  Label2.Caption := 'G ' + IntToStr(g);
  Panel1.Color := RGB(r, g, b);
end;
 
procedure TForm1.TrackBar3Change(Sender: TObject);
begin
  //голубой
  b := TrackBar3.Position;
  Label3.Caption := 'B ' + IntToStr(b);
  Panel1.Color := RGB(r, g, b);
end;
Миниатюры
Следить за областью экрана  
1
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
28.03.2014, 13:00
Лучший ответ Сообщение было отмечено ntlinuxnt как решение

Решение

ntlinuxnt
Возми нужную область сохрани ее в памяти в битмапку, пройдись по всем пикселям и проссумируй красный R - цвет, затем подели на количество пикселей и получиш средниий цвет красного! Затем отскриншоть свой кусок экрана и сделай тоже самое и сравни среднее значение.
Я бы тебе написал этот код, но ты потом скажеш- это нето что я хотел, поэтому и смысла нету мне писать его. Тем более я несовсем понял какой именно кусок экрана нужен.
1
$ su
 Аватар для ntlinuxnt
1605 / 520 / 97
Регистрация: 18.11.2010
Сообщений: 2,807
Записей в блоге: 2
29.03.2014, 11:04  [ТС]
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
ntlinuxnt
Возми нужную область сохрани ее в памяти в битмапку, пройдись по всем пикселям и проссумируй красный R - цвет, затем подели на количество пикселей и получиш средниий цвет красного! Затем отскриншоть свой кусок экрана и сделай тоже самое и сравни среднее значение.
Я бы тебе написал этот код, но ты потом скажеш- это нето что я хотел, поэтому и смысла нету мне писать его. Тем более я несовсем понял какой именно кусок экрана нужен.
Спасибо за посты единственный кто по теме написал, то что нужно можно сказать так, а кусок экрана задается пользователем по координатам мышки,сейчас буду пробовать.
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
29.03.2014, 21:15
ntlinuxnt,

Держи я тебе его полностью собрал, в примере файл из диска использовал, вставиш туда свою битмапку.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  i,j,sum,kol,srpix: Integer;
  Bitmap: TBitmap;
begin
  sum := 0;
  Bitmap := TBitmap.Create; //создадим этот объект в памяти
  Bitmap.LoadFromFile('1.bmp'); //çàãðóæàåì èçîáð
  //Bitmap.Assign(Image1.Picture.Bitmap); //èëè òàê çàãðóæàåì
  for i := 0 to Bitmap.Height - 1 do //âûñîòà
    for j := 0 to Bitmap.Width - 1 do
      sum := sum + GetRValue(Bitmap.Canvas.Pixels[j, i]); //ïîäñ÷åò êðàñíîãî îòòåíêà êàæäîãî ïèêñåëÿ (ñóììà)
 
  kol := Bitmap.Height * Bitmap.Width; //êîëè÷åñòâî ïèêñåëåé
  srpix := sum div kol; //ñðåäíåå çíà÷åíèå êðàñíîãî ó ïèêñåëÿ
  Bitmap.Free;
  Label1.Caption :='R ñðåäíåå = '+ IntToStr(srpix);
end;
1
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
31.03.2014, 01:38
ntlinuxnt,

А че сразу несказал что скриншот делать не умееш, на держи я все в коде расписал, нужную область и размер захвата экрана переменными выставиш.
Вобшем как на картинке так и будет работать, нормально работает.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
var
  Form1: TForm1;
 x1,y1,R: Integer;
 i,j,sum,kol,tekz,prz,koef,sh: Integer;
 Bitmap: TBitMap;
implementation
 
{$R *.dfm}
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  inc(sh); //счетчик нужен для старта пока в переменной prz нету значения
  prz:=  tekz; //текущее равно предыдущему (для сравнения потом)
  Label2.Caption:= 'R предыдущее= '+ IntToStr(prz);
 
  x1 := 200; //начало копирования по x области
  y1 := 300; //начало копирования по y области
  R := 100; //размер квадратной области экрана
  Image1.Height:= R;
  Image1.Width:= R;
 
  Bitmap := TBitMap.Create;
  Bitmap.Width := R;
  Bitmap.Height := R;
  BitBlt(Bitmap.Canvas.Handle, 0, 0, R, R, GetDC(0), x1, y1, SRCCOPY);
 
  sum:=0; kol:=0; tekz:=0;
   for i := 0 to Bitmap.Height - 1 do //высота
    for j := 0 to Bitmap.Width - 1 do
      sum := sum + GetRValue(Bitmap.Canvas.Pixels[j, i]); //подсчет красного оттенка каждого пикселя (сумма)
  kol := R * R; //количество пикселей
  tekz := sum div kol; //среднее значение красного у пикселя
  Label1.Caption :='R текущее = '+ IntToStr(tekz);
 
  if sh > 1 then begin
   koef:= tekz - prz; //на столько изменилось разность вобщем
   Label3.Caption :=('R изменилось на = '+ IntToStr(Abs(koef))+' единиц');
 
    case Abs(koef) of
    0..10: Form1.Color:= clBtnFace;  //мало измений событий можно не вешать
    11..100: Form1.Color:= clYellow;  //сюда события вешаеш
    101..255: Form1.Color:= clRed; //в зависимости от силы изменения
    end;
  end;
 
  Bitmap.SaveToFile('Screen.bmp'); //это убрать
  Image1.Picture.LoadFromFile('Screen.bmp'); //это убрать
  Bitmap.Free;
end;
 
end.
Миниатюры
Следить за областью экрана  
1
20.06.2016, 02:16  [ТС]

Не по теме:

Цитата Сообщение от NIKOLAYY Посмотреть сообщение
А че сразу несказал что скриншот делать не умееш, на держи я все в коде расписал, нужную область и размер захвата экрана переменными выставиш.
Вобшем как на картинке так и будет работать, нормально работает.
Тебе не жалко на меня время было тратить? Но спасибо тебе большое ты меня увлек, тогда я дописал переписал, в общем было круто.

0
20.06.2016, 23:10

Не по теме:

Вы думали над ответом два года и три месяца?

0
31.10.2016, 22:24  [ТС]

Не по теме:

Цитата Сообщение от BOGG ART Посмотреть сообщение
Вы думали над ответом два года и три месяца?
Я заглянул в свою статистику и увидел эту тему просто.

0
03.11.2016, 20:18

Не по теме:

Да я уже и забыл про эту тему, но самое главное код работает сам писал и сам тестил, показывает изменилось ли и на сколько изменилось по красному спектру тестируемая область экрана.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.11.2016, 20:18
Помогаю со студенческими работами здесь

Как следить за демоном?
Приветствую всех. Надеюсь, выбрал максимально правильный раздел. Вводная: Как почти все наверняка знают, существует такой...

Следить за изменениями на сайте
Здравствуйте. Я пока что далек от программирования, но компьютер знаю хорошо. Очень актуально стал вопрос о поиске\написании...

Нужно ли следить за полем счетчик
Доброго времени суток, всем. Такой вот вопрос. У меня прога работающая с базой accsess одна из таблиц в ней играет роль буфера...

Как следить трафик сети
Как следить трафик сети с помощью Wireshark, В сети есть 10 компов , как следить их трафик.

Как следить за изменением позиций в БД?
Здравствуйте, форумчане. Помогите пожалуйста советом по поводу баз данных. Собственно, у меня небольшой список сайтов, который...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru