Я пытаюсь наложить изображение на живое видео. Используемая среда разработки — Visual Studio Professional 2010. Код разработан на C ++. Когда я пытаюсь наложить изображение на живое видео, я загружаю изображение с помощью дескриптора, т.е.
HANDLE hBitmap;
hBitmap = LoadImage(NULL, L"C:\\Users\\User\\Documents\\Visual Studio 2010\\Projects\\BMP_Image.bmp",IMAGE_BITMAP, 0,0, LR_LOADFROMFILE );
Я использую механизм Alpha Blending для наложения изображения на видео. Проблема, с которой я столкнулся, заключается в том, что изображение накладывается на видео пять раз подряд.
Я передаю идентификатор элемента управления изображением, помещенный в диалоговое окно в файле rc, чтобы загрузить живое видео и отобразить его. Я не использую никаких кодов MFC в коде. Рендеринг видео осуществляется с использованием механизма Direct 2D
Разрешение видео составляет 640 * 480, а разрешение растрового изображения — 128 * 128. Если я возьму это растровое изображение, видео будет производить пять раз наложенное изображение на видео ..
Я получил координаты диалогового окна, используя GetWindowRect () и ScreentoClient (). Но я хочу координаты элемента управления изображением.
У меня есть следующие сомнения:
Как получить координаты управления изображением ???
Как разместить изображение в определенном месте в элементе управления изображением ???
Ждем Вашего положительного ответа как самого раннего …
С Уважением,
Вивек
Вы можете использовать следующую функцию для получения дескриптора элемента управления изображением:
::GetDlgItem( hWnd of your dialog, Id of your picture control)
Получив его дескриптор, вы можете получить другую информацию, такую как его положение, размер и
::GetWindowRect(hWnd, &rc)
Если вы наложите изображение через некоторые вызовы API, такие как StretchBlt, вы можете разместить его где угодно.
Других решений пока нет …