小白一枚啊,开发遇到了问题,求大神帮助啊。
在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然后输入文字就好?但是这个控件在视频底层,没办法显示出来,求大神帮助啊。。。。