怎么在c++builder的视频中添加OSD? 90C

小白一枚啊,开发遇到了问题,求大神帮助啊。

在BCB对视频采集的程序开发中,遇到了坎。

视频现在可以实时采集,但是怎么在视频上添加OSD啊?

这里有SDK,但是好像不是BCB的。

4.7 字符OSD叠加设置
本类函数接口主要包含osd叠加参数设置和OSD叠加功能的实现
4.7.1 unsigned (__stdcall *fnOSDCallback)(HDC hdc, unsigned width, unsigned height, void* context)
说明:原始视频数据叠加回调的函数原型
参数:hdc - [in] 视频叠加的窗体
    width - [in] 能够叠加的宽度(单位:像素)
    height - [in] 能够叠加的高度(单位:像素)
    context - [in] 回调函数的上下文
返回值:0 - 成功;失败则返回错误代码
4.7.2unsigned __stdcall DXSetOSDCallback(device_handle device, fnOSDCallback fn, void* context)
说明:设置视频数据叠加回调的函数
参数:device - [in] 设备句柄
     fn - [in] 回调函数指针,NULL - 停止回调
      context - [in] 回调函数的上下文
返回值:0 - 成功;失败则返回错误代码
4.7.3 unsigned __stdcall DXSetOSD(device_handle device,
 unsigned osdType, 
int x,
 int y, 
char* osdData, 
int pointSize = 120, 
LPCTSTR faceName = TEXT("Arial"),
COLORREF color = RGB(255, 255, 255), 
COLORREF bgcolor = RGB(0, 0, 0), 
BOOL opaque = TRUE,unsigned 
char alpha = 255)
说明:设置原始视频帧数据的OSD
参数:device - [in] 设备句柄
      osdType - [in] OSD的类型
      x - [in] 指定OSD的左上角横坐标
      x - [in] 指定OSD的左上角竖坐标
      osdData - [in] OSD的数据,NULL - 取消OSD
      osdType = osd_text,文本OSD叠加类型,最大MAX_OSD_TEXT_LEN个字符
                osdType = osd_time,时间OSD叠加类型
                osdType = osd_image,图片OSD叠加类型
     pointSize - [in] 字体大小
     faceName - [in] 字体名称
      color - [in] 针对 osd_text, osd_time 两种类型的OSD的前景色,默认值:白色
(RGB(255, 255, 255))
    bgcolor - [in] OSD的背景色,默认值:黑色(RGB(0, 0, 0))
    opaque - [in] OSD的背景色是否不透明,默认值:是。当选择透明时,则以 bgcolor 进
行透明处理
    alpha - [in] alpha运算值。取值[0 ~ 255],0 - OSD透明,255 - OSD不透明,中间值 – OSD      
与视频数据进行alpha运算
返回值:0 - 成功;失败则返回错误代码

难道直接在Panel中加入Image然后输入文字就好?但是这个控件在视频底层,没办法显示出来,求大神帮助啊。。。。

Qushishui
Qushishui 有人没有啊????
5 个月之前 回复
Qushishui
Qushishui 有没有大神啊,绝望了。。。
5 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问