抓拍
/// <summary>
        /// 抓拍
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tsButtonSnatch_Click(object sender, EventArgs e)
        {
            //检查用户登录状态
            if (null == m_player.m_mainForm)
            {
                MessageBox.Show("请先登录!");
                return;
            }
            //当前用户控制面板
            selectedSubCtrl = m_player.m_mainForm.g_userCtrlList[m_player.m_mainForm.tabControl1.SelectedIndex];
            if(null != selectedSubCtrl)
            {
                //当前播放通道
                selectedPanel = selectedSubCtrl.imosPlayer.m_playerUnit[PlayerPanel.SelectedIndex];
            }

//检查图片保存地址,默认为snatch
            UInt32 ulRet = 0;
            String picPath = LocalConfig.picSnatchLoc;
            if (false == Directory.Exists(LocalConfig.picSnatchLoc))
            {
                Directory.CreateDirectory(LocalConfig.picSnatchLoc);
            }

if(false ==LocalConfig.picSnatchLoc.EndsWith("\\"))
            {
                //这里要给路径后添加"\"
                picPath = LocalConfig.picSnatchLoc.Insert(LocalConfig.picSnatchLoc.Length, "\\");
            }

if(null != selectedPanel.channelCode)
            {
                //单次实时抓图
                ulRet = IMOSSDK.IMOS_SnatchOnce(ref selectedSubCtrl.sdkManager.stLoginInfo.stUserLoginIDInfo,//用户登录标识
                    Encoding.Default.GetBytes(selectedPanel.channelCode),//频道号
                    Encoding.Default.GetBytes(picPath),//图像文件名
                    LocalConfig.picFormat);//图像格式
            }
            
            if (0 != ulRet)
            {
                log.Info("抓图失败,错误码为:" + ulRet.ToString());
                MessageBox.Show("抓图失败,错误码为:" + ulRet.ToString());
            }else
            {
                MessageBox.Show("抓图成功!图片保存在" + LocalConfig.picSnatchLoc);
            }
        }

调用sdk中的方法
 /// <summary>
        /// 单次实时抓拍
        /// 图像文件名全部由用户指定
        /// </summary>
        /// <param name="stUserLoginInfo">用户标识信息</param>
        /// <param name="szChannelCode">播放通道号</param>
        /// <param name="szFileName">要保存的图像文件名</param>
        /// <param name="ulPicFormat">图像格式</param>
        /// <returns></returns>
        [DllImport("xp_frame.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
        public static extern UInt32 IMOS_SnatchOnceEx(ref USER_LOGIN_ID_INFO_S stUserLoginInfo, byte[] szChannelCode,  byte[] szFileName, UInt32 ulPicFormat);

/// <summary>
        /// 启动连续实时抓拍
        /// </summary>
        /// <param name="stUserLoginInfo">用户登录标识</param>
        /// <param name="szChannelCode">播放通道号</param>
        /// <param name="szFileName">图像文件存放路径,包括文件名(不带扩展名)</param>
        /// <param name="ulPicFormat">图像文件的格式</param>
        /// <param name="ulInterval">抓拍间隔,时间为毫秒</param>
        /// <returns></returns>
        [DllImport("xp_frame.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
        public static extern UInt32 IMOS_StartSnatchSeries(ref USER_LOGIN_ID_INFO_S stUserLoginInfo, byte[] szChannelCode,  byte[] szFileName, UInt32 ulPicFormat, UInt32 ulInterval);

/// <summary>
        /// 停止连续实时抓拍
        /// </summary>
        /// <param name="stUserLoginInfo">用户标识</param>
        /// <param name="szChannelCode">播放通道编码</param>
        /// <returns></returns>
        [DllImport("xp_frame.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
        public static extern UInt32 IMOS_StopSnatchSeries(ref USER_LOGIN_ID_INFO_S stUserLoginInfo, byte[] szChannelCode);

imos 学习笔记五 抓拍 c#相关推荐

  1. python函数是一段具有特定功能的语句组_Python学习笔记(五)函数和代码复用

    本文将为您描述Python学习笔记(五)函数和代码复用,具体完成步骤: 函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Pyth ...

  2. Ethernet/IP 学习笔记五

    Ethernet/IP 学习笔记五 Accessing data within a device using a non-time critical message (an explicit mess ...

  3. StackExchange.Redis学习笔记(五) 发布和订阅

    StackExchange.Redis学习笔记(五) 发布和订阅 原文:StackExchange.Redis学习笔记(五) 发布和订阅 Redis命令中的Pub/Sub Redis在 2.0之后的版 ...

  4. 吴恩达《机器学习》学习笔记五——逻辑回归

    吴恩达<机器学习>学习笔记五--逻辑回归 一. 分类(classification) 1.定义 2.阈值 二. 逻辑(logistic)回归假设函数 1.假设的表达式 2.假设表达式的意义 ...

  5. 好程序员教程分析Vue学习笔记五

    好程序员教程分析Vue学习笔记五,上次我们学习了Vue的组件,这次我们来学习一下路由的使用.在Vue中,所谓的路由其实跟其他的框架中的路由的概念差不多,即指跳转的路径. 注意:在Vue中,要使用路由, ...

  6. 【AngularJs学习笔记五】AngularJS从构建项目开始

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# AngularJs学习笔记 [AngularJs学习笔记一]Bower解决js的依赖管理 [AngularJs学习笔 ...

  7. ROS学习笔记五:理解ROS topics

    ROS学习笔记五:理解ROS topics 本节主要介绍ROS topics并且使用rostopic和rqt_plot命令行工具. 例子展示 roscore 首先运行roscore系列服务,这是使用R ...

  8. Spring Boot 框架学习笔记(五)( SpringSecurity安全框架 )

    Spring Boot 框架学习笔记(五) SpringSecurity安全框架 概述 作用 开发示例: 1. 新建项目 2. 引入依赖 3. 编写`SecurityConfig`类,实现认证,授权, ...

  9. Java学习笔记(五):一张图总结完JVM8基础概念

    Java学习笔记(五):一张图总结完JVM8基础概念 引文 最近在学习JVM的相关内容,好不容易把基础概念全部都学了一遍,却发现知识网络是零零散散的.迫不得已,只好再来一次总的归纳总结.为了更好的理解 ...

最新文章

  1. Asp.Net 之 通过调用 WScript.Shell 启动本地 exe 程序时产生“ automation服务器不能创建对象 ”的错误...
  2. 云服务器怎么打开_香港云服务器怎么样?
  3. Linux mount: Structure needs cleaning 错误解决方法
  4. AcWing 1969. 品种邻近(滑动窗口+枚举)
  5. mac如何查看ssd寿命_固态硬盘ssd写入量剩余读写次数怎么查
  6. YOLOv3中Anchor理解
  7. 怎么把PDF转换成JPG图片?这个方法你了解吗
  8. 计算机的ps快捷键,ps快捷键常用表
  9. 面试题33:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 * 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
  10. layim之刷新好友列表
  11. Unity3D for Android 纹理压缩支持
  12. FIR内插滤波器结构与代码实现
  13. **Django介绍 和 MVT 模式 MVC 模式对比**
  14. 《架构师》被孟岩表扬,心里高兴
  15. 欢迎来到Jsp编程课时十——Servlect+Jsp基础回顾。
  16. linux swift开发环境,Linux平台swift语言开发学习环境搭建
  17. 2022年双十一百亿补贴,2022年聚划算双11玩法解读
  18. python展开 c函数中的宏预处理_Linux C语言结构体-学习笔记
  19. C语言— —编程语言与Hello World!
  20. 2010破局,联想笔记本用AMD芯

热门文章

  1. C语言结构体与共用体(上篇) CSDN 花神生涯
  2. 免费在线PHP加密、解密、混淆源代码工具- toolfk.com
  3. chrome将html转成excel,怎样在Chrome浏览器中,直接让表格中的数据以Excel文件形式导出|网页转excel表格...
  4. PAT A1089 Insert or Merge ——秋水共长天一色
  5. 吐血分享一些优秀的 PDF2Word 工具
  6. 微信公众号进入H5页面之后,点击返回键一直报404
  7. 分享119个HTML个性简实模板,总有一款适合您
  8. SketchUp 2018 适用的联合推拉(超级推拉)扩展插件Joint Push Pull下载
  9. FBI 树【普及-】
  10. 虹膜识别论文1:Iris Recognition With Off-the-Shelf CNN Features: A Deep Learning Perspective 2017年 学习心得