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

2024-09-03 17:52

本文主要是介绍JAVA使用海康SDK调用抓图功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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());//转Base64return 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());}}

这篇关于JAVA使用海康SDK调用抓图功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1133629

相关文章

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

java中反射(Reflection)机制举例详解

《java中反射(Reflection)机制举例详解》Java中的反射机制是指Java程序在运行期间可以获取到一个对象的全部信息,:本文主要介绍java中反射(Reflection)机制的相关资料... 目录一、什么是反射?二、反射的用途三、获取Class对象四、Class类型的对象使用场景1五、Class