我试图在实时视频上叠加图像。使用的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机制将图像叠加到视频上。我遇到的问题是,图像连续五次叠加到视频上。
我传递了一个放在rc文件对话框中的图片控件的ID,以加载实时视频并显示它。我没有在代码中使用任何MFC。视频使用Direct 2D机制进行渲染
视频分辨率为640 * 480,位图图像分辨率为128 * 128。如果我拍摄此位图,视频将在视频上生成五次叠加图像..
我使用GetWindowRect()和ScreentoClient()得到了对话框的坐标。但我想要Picture控件的坐标。
我有以下怀疑:
如何获取图片控件的坐标???
如何将图像放置在图片控件中的特定位置???
期待最早的积极回应...
此致
的Vivek
答案 0 :(得分:0)
您可以使用以下功能来检索图片控件的手柄:
::GetDlgItem( hWnd of your dialog, Id of your picture control)
通过检索其手柄,您可以获得其他信息,例如其位置,大小和
::GetWindowRect(hWnd, &rc)
如果您通过某些API调用(例如StretchBlt)覆盖图像,则可以将其放在任何您想要的位置。