JAVA使用海康SDK调用抓图功能

news2024/9/21 0:31:27

1.SDK下载

下载网址:海康开放平台SDK下载地址
注:根据需要操作系统下载对应SDK
本文使用WIndows操作系统

2.海康Demo测试

1)IDEA打开项目ClientDemo
2)ClientDemo进行适当修改,留下加载SDK和NET_DVR_CaptureJPEGPicture方法测试

能够正常保存图片文件则DemoSDK可正常加载和使用。

3.迁移到java项目中使用

1).lib文件夹
整个lib文件夹迁移至com同级目录
在这里插入图片描述
2)接口和Common包移入项目
在这里插入图片描述
3)本地maven仓库引入lib下的jna.jar、examples.jar包(打包时需要将这两个jar包打到war包中)
项目的Maven Tab页
在这里插入图片描述
Maven仓库引入jar包

mvn install:install-file -Dfile=examples.jar -DgroupId=com.example> -DartifactId=examples -Dversion=1.0.0 -Dpackaging=jar
mvn install:install-file -Dfile=examples.jar -DgroupId=com.example -DartifactId=examples -Dversion=1.0.0 -Dpackaging=jar

pom.xml文件配置:

<dependency>
    <groupId>com.example</groupId>
    <artifactId>jna</artifactId>
    <version>1.0.0</version>
</dependency>
<dependency>
    <groupId>com.example</groupId>
    <artifactId>examples</artifactId>
    <version>1.0.0</version>
</dependency>

配置插件打包lib文件夹

  <plugin>
            <!--拷贝资源文件 copy-resources-->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.2.0</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <!--打包前位置-->
                                <directory>${basedir}/lib</directory>
                            </resource>
                        </resources>
                        <!--打包后位置-->
                        <outputDirectory>${project.build.directory}/classes/lib</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>

4)初始化SDK前需要加载dll动态库,路径需要满足测试环境和生产环境都支持
使用下列代码获取dll文件路径,war包配置按照pom文件打包即可。Sbringboot启动和tomcat启动war包都可以直接引入。

 //win系统加载库路径
URL url = HikUtil.class.getResource("../../../../lib/HCNetSDK.dll");
strDllPath = url.getFile().substring(1).replace("/","\\");

5)根据ClientDemo.java使用SDK的方法或重新开发

 /**
     * 相机硬件抓图存储到内存
     *
     * @return Base64
     */
    public String PEGPicture_NEW() {

        HCNetSDK.NET_DVR_JPEGPARA  net_dvr_jpegpara = new HCNetSDK.NET_DVR_JPEGPARA();
        net_dvr_jpegpara.wPicQuality= 0;
        net_dvr_jpegpara.wPicSize = 0xff;
        int dwPicSize=1024*1024*10;

        // 分配内存
        Memory jpegPicBuffer = new Memory(dwPicSize);
        IntByReference IntByReference =new IntByReference();
        if (  hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(lUserID,1,net_dvr_jpegpara,jpegPicBuffer,dwPicSize,IntByReference))
        {
            System.out.println("抓图成功");
            byte[] jpegData = jpegPicBuffer.getByteArray(0, IntByReference.getValue());
            //转Base64
            return Base64.getEncoder().encodeToString(jpegData);
        }else{
            throw new SdkException("抓图失败,错误代码为:"+hCNetSDK.NET_DVR_GetLastError());
        }

    }

    /**
     * 相机硬件抓图存储到文件地址,需要图片名称
     *
     * @return
     */
    public void PEGPicture(String imagePath) {
        
        HCNetSDK.NET_DVR_JPEGPARA  net_dvr_jpegpara = new HCNetSDK.NET_DVR_JPEGPARA();
        net_dvr_jpegpara.wPicQuality= 0;
        net_dvr_jpegpara.wPicSize = 0xff;
        int dwPicSize=1024*1024*10;
//        抓图直接存储,且只能存储为jpeg格式,jpg格式会发生乱码
        byte[] sPicFileName;
        sPicFileName = imagePath.getBytes();
        if (hCNetSDK.NET_DVR_CaptureJPEGPicture(lUserID,  1, net_dvr_jpegpara,sPicFileName))
        {
            System.out.println("抓图成功");
        }else{
            System.out.println("抓图失败,错误代码为:"+hCNetSDK.NET_DVR_GetLastError());
        }
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2102137.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Service Android四大组件 小白秒懂

目录 Service简介 1.Service作用 2.Service特点 3.两种启动方式的生命周期 4.Service相关内部类 Service简介 1.Service作用 后台长期处理耗时的逻辑 Service不存在UI界面&#xff0c;Service在后台运行&#xff0c;不能与用户进行交互功能 2.Service特点 后台运行&…

域名证书,泛域名证书,sni

文章目录 前言一、证书1.全域名证书2.泛域名证书 二、域名证书的使用1、浏览器请求域名证书流程对全域名证书的请求流程对泛域名证书的请求流程ssl client-hello携带server name 报文 2、浏览器对证书的验证流程 三、域名证书和sni 前言 本文介绍了泛域名证书和全域名证书的区别…

【QT】析构函数执行引发异常

在析构函数执行完成后引发异常&#xff0c;程序崩溃 造成异常的原因 在布局添加QSpacerItem引起的异常&#xff0c;使用try…catch无法捕获 QSpacerItem *spacer new QSpacerItem(1, 1, QSizePolicy::Expanding, QSizePolicy::Fixed);QHBoxLayout *hLayout2 new QHBoxLayout;…

搭建和使用OnFinality?

目录 您可以用OnFinality做什么&#xff1f; 举个例子 注册OnFinality账户 部署专用节点 入门 选择网络 配置新节点 节点规格 启动配置 检查您的新节点 选择计费方式 恭喜&#xff0c;现在去构建你的 dApp 吧&#xff01; 您可以用OnFinality做什么&#xff1f; On…

差分传输与单端传输

差分与单端传输 本页讨论模拟信号传输中的两个概念&#xff1a;“单端”和“差分”。模拟信号用于将模拟仪器的输出传送到数字转换器。虽然数字信号对干扰的容忍度相对较高&#xff0c;但模拟信号却可能受到环境中电磁波的干扰和改变。本文档将解释这一问题&#xff0c;并描述…

C++学习笔记----6、内存管理(一)---- 使用动态内存(3)

3.2、对象数组 对象数组与原型/基础类型的数组没有什么不同&#xff0c;除了元素的初始化之外。当你使用new[N]去分配N个对象&#xff0c;就把N个连续的块空间分配出去了&#xff0c;每一个块空间可以放一个单独的对象。对于对象数组&#xff0c;New[]对每一个对象自动调用0参数…

Linux虚拟机安装(CentOS9)

需要自己设置一下内存&#xff0c;处理器&#xff0c;以及镜像文件 **************************************************************** 设置完硬件后&#xff0c;启动虚拟机&#xff0c;开始配置操作系统 选择英文 这里需要改三个地方 1. 2. 3. 设置root账户的密码 全部完…

Anaconda安装教程就看这里

Anaconda安装教程就看这里 1 了解Anaconda2 为什么要安装Anaconda3 安装Anaconda3.1 下载并安装3.2 环境配置 4 管理python环境4.1 NAVIGATOR创建python3.94.2 命令行创建python3.84.3 Pycharm中通过conda管理python环境 1 了解Anaconda Anaconda是易于安装的包管理器、环境管…

RLHF PPO DPO

生成式大模型的RLHF技术&#xff08;一&#xff09;&#xff1a;基础​​​​​​​ DPO: Direct Preference Optimization 论文解读及代码实践 深入对比 DPO 和 RLHF 深入理解DPO&#xff08;Direct Preference Optimization&#xff09;算法

数据结构---链表

//链表的创建 Link_t *create_link() {Link_t *plink malloc(sizeof(Link_t));if(NULL plink){perror("fail plink");return NULL;}plink->phead NULL;plink->clen 0;return plink; } //头插 int push_link_head(Link_t *plink, DataType data) {Link_Nod…

九月最新蜘蛛池|泛码网的SEO工具怎么样?

在当今数字化的时代&#xff0c;网络营销已经成为企业和个人推广的重要手段。而在众多网络营销方式中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;备受关注。随着 SEO 的发展&#xff0c;各种 SEO 工具也如雨后春笋般涌现。那么&#xff0c;这些 SEO 工具到底有没有用…

AI制作情侣头像副业项目,每天只需2小时,收入是我工资的三倍(附教程)

现在好赚钱的项目模式&#xff0c;一般都是提供情绪价值&#xff0c; 用AI制作情侣头像这个就是一个非常不错的情绪价值输出。 这个项目被真名是可以落地实操的&#xff0c;做好了日入500是可以有的。(文末免费领取教程) 项目介绍 在当下社会中&#xff0c;年轻情侣都喜欢用…

SpringFrameWork学习笔记

本笔记基于【尚硅谷新版SSM框架全套视频教程&#xff0c;Spring6SpringBoot3最新SSM企业级开发】https://www.bilibili.com/video/BV1AP411s7D7?vd_sourcea91dafe0f846ad7bd19625e392cf76d8 总结 资料获取网址&#xff1a;https://www.wolai.com/v5Kuct5ZtPeVBk4NBUGBWF 技术…

用 coze 做一个简单的外卖评价助手

大家有没有遇到过这种情况&#xff1f;点外卖时看到"好评返现金"的活动&#xff0c;可是又不想输入太多内容&#xff0c;那该怎么办呢&#xff1f; 别担心&#xff0c;今天我就来教大家如何利用 Coze 智能体&#xff0c;只需要一张简单的图片就能自动帮你生成好评! …

2024年建筑电工(建筑特殊工种)证模拟考试题库及建筑电工(建筑特殊工种)理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年建筑电工(建筑特殊工种)证模拟考试题库及建筑电工(建筑特殊工种)理论考试试题是由安全生产模拟考试一点通提供&#xff0c;建筑电工(建筑特殊工种)证模拟考试题库是根据建筑电工(建筑特殊工种)最新版教材&#…

Phalcon 增删改查的搭建过程

一 结果展示 先展示效果: 1 查询: 2 删除 3 插入 插入之前,数据库里面表的数据如下: 插入之后:

Git基础教程:掌握版本控制的秘密

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;C从入门到精通 目录 &#x1f680; 什么是Git &#x1f680; 在本系列博客中所实现的目标 一&#xff1a; &#x1f525; Git 初识 二&#xff1a; &#x1f525; Git 安装 &#x1f34a; Linux-c…

结构型设计模式—组合模式

结构型设计模式—组合模式 欢迎长按图片加好友&#xff0c;我会第一时间和你分享持续更多的开发知识&#xff0c;面试资源&#xff0c;学习方法等等。 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许你将对象组合成树形结构来表示…

亿图图示下载安装教程EdrawMax Pro 13版超详细图文教程

亿图图示下载安装教程EdrawMax Pro 13版超详细图文教程&#xff1a; 亿图图示是一款功能强大的综合绘图软件&#xff0c;具有以下特点和功能 丰富的绘图类型&#xff1a;涵盖 210 余种办公绘图类型&#xff0c;包括流程图、思维导图、信息图、工业设计、组织架构图、平面设计…

k8s使用报错

报错内容&#xff1a; [rootk8s-master ~]# kubectl get nodes E0903 17:21:22.183325 4630 memcache.go:265] couldnt get current server API group list: Get "https://172.25.250.100:6443/api?timeout32s": dial tcp 172.25.250.100:6443: connect: connec…