Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2015, 16:13   #1
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
Вопрос Получить изображение с контрола (рисует сторонний процесс)

Доброго времени суток.

Есть приложение без окон и дверей, выводит видео поток на любой контрол WinForm.

Задача - получить картинку. Чем больше фпс и правильней - тем лучше.

Я к сожалению не могу найти нормально структурированную информацию о том как этот процесс происходит, но полагаю что контрол получает сообщение WM_PAINT с указателем на память в котором хранится картинка в Bitmap и затем перерисовывает себя (или указанную область?)

Соот-но нужно получить message, указатель на область памяти с картинкой , считать его и дальше уже делать с графикой то что мне нужно.

Прошу просвятить в этом вопросе, а может даже помочь с примером или дать какой-то совет.

p.s. приложение "приемник" на C#
Lime вне форума Ответить с цитированием
Старый 18.02.2015, 16:28   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от Lime Посмотреть сообщение
полагаю что контрол получает сообщение WM_PAINT
Абсолютно не обязательно.

В качестве эскперимента, пока играет видео нажмите PrintScreen и скопируйте полученную картинку в mspaint (или любой другой графический редактор), после чего гляньте есть там видео или нет.
waleri вне форума Ответить с цитированием
Старый 18.02.2015, 16:32   #3
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Абсолютно не обязательно.

В качестве эскперимента, пока играет видео нажмите PrintScreen и скопируйте полученную картинку в mspaint (или любой другой графический редактор), после чего гляньте есть там видео или нет.
На просторах интернета нашел аналогичный пример но в качестве кода C# (просто копируется область вычисленная по координатам контрола относительно экрана).
Только проблема в том что если форму с контролом задвинуть за часть экрана то перерисовываться будет только видимая часть.

По этому я думаю что нужно данные с изображениям как-то получать напрямую, из сообщения. А не заниматься извращениями с контролом.
Хотя главное это достичь поставленной цели.

p.s. во вложении своя форма и чужая, сообщение и правда не приходит, только при ручных манипуляциях вызывающих перерисовку
Изображения
Тип файла: jpg Untitled.jpg (26.2 Кб, 127 просмотров)
Тип файла: jpg Untitled2.jpg (18.5 Кб, 115 просмотров)

Последний раз редактировалось Lime; 18.02.2015 в 16:48.
Lime вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Процесс не может получить доступ к файлу mihalech19 C++ Builder 14 06.07.2014 13:38
Как получить цвет заливки контрола Тоба Win Api 7 18.07.2013 14:44
получить изображение с камеры. Aleksandr Общие вопросы Delphi 1 17.04.2013 11:47
Получить изображение контрола созданного в рантайм Celestia Общие вопросы Delphi 3 08.05.2011 10:05
Получить изображение с нормализованной яркостью osamabengitler Помощь студентам 0 20.08.2009 23:01