先抱怨一下,打死都想不到,海康的摄像头SDK居然是一个Java类,还有必须的两个jar包(jna.jar,examples.jar)。鬼能想得到会这么命名。

下面开始吧。

把从官网下载的SDK(和当前系统对应)解压,把库文件整个拷贝到某个目录(我是D:hiklib),然后把D:hiklib和D:hiklibHCNetSDKCom加入到系统环境变量path中。可以尝试从代码中把这两个文件夹加入path,我没有试成功。

项目引入jna.jar和examples.jar这两个jar包。注意:一定要用官网SDK里面的,千万不要用其他版本的jna。

从ClientDemo中把HCNetSDK.java拷贝到自己的项目中(这就是神奇的SDK)。

开始主体,Java代码:

public class CameraManager {

private static Logger logger = LoggerFactory.getLogger(CameraManager.class);

private static HCNetSDK sdk = HCNetSDK.INSTANCE;

private static NativeLong userId = new NativeLong(-1);//用户登录ID,值为0,1,2...

private static NativeLong startChan = new NativeLong(-1); // start channel number

private void login(String ip, short port, String username, String pwd){

//sdk初始化

if (!sdk.NET_DVR_Init()){

logger.error("海康SDK初始化失败!" + sdk.NET_DVR_GetLastError());

}

//注册设备

NET_DVR_DEVICEINFO_V30 deviceInfo = new NET_DVR_DEVICEINFO_V30();

//登录

userId = sdk.NET_DVR_Login_V30(ip, port, username, pwd, deviceInfo);

if (userId.intValue() < 0){

logger.error("摄像头用户登录失败!Err:" + sdk.NET_DVR_GetLastError());

}

startChan.setValue(deviceInfo.byStartChan);

}

public boolean takePic(String ip, short port, String username, String pwd) {

if (userId.intValue() < 0 || startChan.intValue() < 0) {

logger.info("执行海康摄像机登录,ip[{}],port[{}],username[{}].",ip,port,username);

login(ip,port,username,pwd);

}

logger.info("准备拍照,userId:[{}],startChan:[{}]",userId.intValue(),startChan.intValue());

//拍照

NET_DVR_JPEGPARA strJpeg = new NET_DVR_JPEGPARA();

strJpeg.wPicQuality = 1; //图像参数

strJpeg.wPicSize = 2;

String filePath = "E:\123q.jpg";

boolean b = sdk.NET_DVR_CaptureJPEGPicture(userId, startChan, strJpeg, filePath);//尝试用NET_DVR_CaptureJPEGPicture_NEW方法,但是不是报43就是JDK崩溃....

if(!b){//单帧数据捕获图片

System.out.println("抓拍失败!" + " err: " + sdk.NET_DVR_GetLastError());

}

else{

System.out.println("抓拍成功,buffer:"+jpegStringBuffer);

}

return b;

}

public void logout(){

sdk.NET_DVR_Logout(userId);

sdk.NET_DVR_Cleanup();

}

}

完成。以上代码中我删除了异常处理。记得加上。

java连接摄像头_Java实现 海康摄像头抓拍图像(示例代码)相关推荐

  1. java连接海康摄像头_Java实现 海康摄像头抓拍图像

    先抱怨一下,打死都想不到,海康的摄像头SDK居然是一个Java类,还有必须的两个jar包(jna.jar,examples.jar).鬼能想得到会这么命名. 下面开始吧. 把从官网下载的SDK(和当前 ...

  2. java 摄像头_Java 实现 海康摄像头抓拍图像 Windows、Linux

    先抱怨一下,打死都想不到,海康的摄像头SDK居然是一个Java类,还有必须的两个jar包(jna.jar,examples.jar).鬼能想得到会这么命名. 下面开始吧. Windows 把从官网下载 ...

  3. Java版基于springboot+maven海康摄像头sdk抓拍功能的二次开发

    相信在用Java开发海康摄像头的小袁袁都很苦恼官网给的SDK,官方的SDK中有demo,有文档,可那大多都是基于C写的文档,找了半天终于找到一个java版本的,进去一看还是用Jfream写的C/S版的 ...

  4. 前端如何显示服务器摄像头,浏览器显示海康摄像头实时预览画面纯前端解决方案...

    php 实时输出内容到浏览器 php 实时输出内容到浏览器 当你在处理一个过程需要耗时很长,但你又需要适时的知道程序当前的处理状况的时候,该怎么办呢?下面就分享一下如何使用php及时的输出当前结果到浏 ...

  5. java集合交运算_java中计算集合的交差并集示例代码

    前言 本文主要给大家简单介绍下,如何使用apache commons以及guava的类库来计算集合的交差并集.分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. maven com.go ...

  6. 海康摄像头的二次开发(java)

    海康摄像头的二次开发(java) 我第一次接触海康摄像头的二次开发的项目,一开始的时候摸不清套路,走了不少弯路,现在准备把我的一些经验留下来,让大家参考一下. 1.首先到海康的官网下载设备网络SDK: ...

  7. 海康摄像头忘记密码,自己如何快速重置密码

    海康摄像头,自助重置密码. 一.摄像头忘记密码情况 在项目工程中,有各种各样的原因,导致摄像头密码忘记,有的时安装时安装工程商没有把密码留下来,有的是客户自己设置了密码后忘记了密码,还有的是客户买的新 ...

  8. 海康摄像头-java通过opencv实现

    下载opencv4.3 链接:https://pan.baidu.com/s/1XJQRYnNYYFpb447HC3rxEQ 提取码:r7zg 复制这段内容后打开百度网盘手机App,操作更方便哦 打开 ...

  9. 海康摄像头连接阿里云视频监控的步骤

    因为公司可能需要做一个校园的安防,需要运用到摄像头,本来是想用springboot+海康自带的sdk来做的,但是经理推荐用阿里的OSS+阿里的视频监控来做远程监控的调用,所以就过来搭建了一下,用了两天 ...

最新文章

  1. [Dynamic Language] Python3.7 源码安装 ModuleNotFoundError: No module named '_ctypes' 解决记录...
  2. php中区分大小写的超全局变量总结
  3. BTS3410G参数
  4. 二叉树的前中后序遍历之迭代法(非统一风格迭代方式)
  5. 关于如何升级gcc版本及相关的标准库问题
  6. java 常用类 练习_Java常用类之String类练习
  7. Linux环境下分析和排查系统故障
  8. 如何将参数传递给setTimeout()回调?
  9. ios开发swift_10位Swift和iOS开发大师
  10. Matlab绘制柱状图, 设置figure的最大最小值
  11. android banner3d,XBanner实现3D画廊效果
  12. 怎么用计算机编写圆的面积,圆面积计算器.doc
  13. Windows Azure 解决方案系列: Real World Windows Azure: 与微软杰出工程师, Sean Nolan的访谈
  14. python获取B站单个视频的封面
  15. IO、文件、NIO【草案三】
  16. 互联网摸鱼日报(2022-12-25)
  17. 美国TSCA 法案管控产品中的几种PBT化学品
  18. Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理
  19. 《冒险者传说》召唤台在哪
  20. Java JDK 1.8 新特性 Stream流

热门文章

  1. 【MyBatis】sql列名与实体类属性名不同的解决方式
  2. 【Java网络编程(四)】手写TCP聊天室——控制台版
  3. MIPS指令以及数据通路
  4. C++ STL栈Stack的使用
  5. python定义匿名函数关键字_python语言的匿名函数、7种可调用对象以及用户定义的可调用类型...
  6. Effective Java之避免创建不必要的对象(五)
  7. 1、请简述DNS的作用,并说明当你输入网址“www.nxtc.edu.cn“按下回车后,DNS是怎么工作的?(关键步骤可以给出相应图示) 2、详细描述域名劫持攻击的过程及防御方式。
  8. linux on zfs,在zfsonlinux中增长zpool
  9. concurrent 底层_万字长文!从底层开始带你了解并发编程,彻底帮你搞懂Java锁!
  10. 异步通知和同步通知_CCF NOI 2020 网上同步赛报名通知