C#:使用海康SDK绘图回调函数DrawFun()

2021-06-28 19:06

阅读:520

标签:pen   res   ini   block   play   使用   绘图   init   port   

简述

??使用海康摄像头采集图像时,需要在图像上添加图标、文字等额外数据。可选择使用SDK提供的NET_DVR_RigisterDrawFun()函数注册绘图回调函数,使用NET_DVR_RealPlay_V40()的返回值(用于在DrawFun()函数中区分通道数据)及DrawFun回调函数的指针进行注册。注意:使用DrawFun回调函数,需要在调用NET_DVR_RealPlay_V40()时将第三个参数设置为null。

代码

class DeviceCamera : IDeviceCamera
    {
        private CameraInfo m_stCameraInfo;

        private bool m_bInitSDK = false;
        private Int32 m_lUserID = -1;
        private Int32 m_lRealHandle = -1;

        private CHCNetSDK.DRAWFUN cbDrawFun = null;

        public override bool InitCamera( CameraInfo stInfo )
        {
            m_stCameraInfo = stInfo;

            //
            m_bInitSDK = CHCNetSDK.NET_DVR_Init();
            if ( m_bInitSDK == false )
            {
                uint nError = CHCNetSDK.NET_DVR_GetLastError();
                MessageBox.Show( "NET_DVR_Init error! ErrorCode: " + nError );
                return false;
            }
            else
                CHCNetSDK.NET_DVR_SetLogToFile( 3, "C:\\SdkLog\\", true );

            CHCNetSDK.NET_DVR_SetConnectTime( 5000, 1 );
            CHCNetSDK.NET_DVR_SetReconnect( 10000, 1 );

            string DVRIPAddress = stInfo.strIP;     
            Int16 DVRPortNumber = stInfo.nPort;     
            string DVRUserName = stInfo.strUserName;
            string DVRPassword = stInfo.strPassword;
            CHCNetSDK.NET_DVR_DEVICEINFO_V30 DeviceInfo = new CHCNetSDK.NET_DVR_DEVICEINFO_V30();
            m_lUserID = CHCNetSDK.NET_DVR_Login_V30( DVRIPAddress, DVRPortNumber, DVRUserName, DVRPassword, ref DeviceInfo );
            if ( m_lUserID 

注:代码中使用PictureBox显示摄像头图像,故将其句柄设置给 lpPreviewInfo.hPlayWnd。

效果示例

技术分享图片

C#:使用海康SDK绘图回调函数DrawFun()

标签:pen   res   ini   block   play   使用   绘图   init   port   

原文地址:http://blog.51cto.com/weiyuqingcheng/2323507


评论


亲,登录后才可以留言!