Qushishui 2019-11-12 17:31
浏览 345
已结题

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

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

在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然后输入文字就好?但是这个控件在视频底层,没办法显示出来,求大神帮助啊。。。。

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题
    • ¥15 (标签-Python|关键词-socket)
    • ¥15 keil里为什么main.c定义的函数在it.c调用不了
    • ¥50 切换TabTip键盘的输入法
    • ¥15 可否在不同线程中调用封装数据库操作的类