0

我正在尝试在实时视频上叠加图像。使用的 IDE 是 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 机制将图像叠加到视频上。我遇到的问题是,图像连续五次叠加到视频上。

我正在传递一个图片控件的 ID,放置在 rc 文件的对话框中,以加载实时视频并显示它。我没有在代码中使用任何 MFC。视频使用 Direct 2D 机制渲染

视频分辨率为640*480,位图图像分辨率为128*128。如果我拿这个位图,视频将在视频上产生五倍的叠加图像..

我使用 GetWindowRect() 和 ScreentoClient() 获得了对话框的坐标。但我想要图片控件的坐标。

我有以下疑问:

如何获取图片控件的坐标???

如何将图像放置在图片控件中的特定位置???

期待您的积极回应尽早...


问候,

维韦克

4

1 回答 1

0

您可以使用以下函数来检索图片控件的句柄:

::GetDlgItem( hWnd of your dialog, Id of your picture control)

通过检索它的句柄,您可以获得其他信息,例如它的位置、大小和

::GetWindowRect(hWnd, &rc)

如果您通过一些 API 调用(例如 StretchBlt)覆盖图像,则可以将其放置在您想要的任何位置。

于 2012-12-01T13:29:21.850 回答