1. 配置yml文件

在yml文件中配置保存文件的地址

# 海康配置
hksetting:image:# 抓取图片上传路径dvrPicSavePath: F://ideaworkspace/hk-project/dvr-pic

2. 抓图实现方式

  1. 创建图片结构体:HCNetSDK.NET_DVR_JPEGPARA
    结构体信息:
//图片质量
public static class NET_DVR_JPEGPARA extends Structure {/*注意:当图像压缩分辨率为VGA时,支持0=CIF, 1=QCIF, 2=D1抓图,当分辨率为3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA,7=XVGA, 8=HD900p仅支持当前分辨率的抓图*/public short    wPicSize;               /* 0=CIF, 1=QCIF, 2=D1 3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA*/public short    wPicQuality;            /* 图片质量系数 0-最好 1-较好 2-一般 */
}

  1. 创建文件名称
  2. 调用抓图方法: NET_DVR_CaptureJPEGPicture
/*** 设备抓图(无预览)* 单帧设备抓取保存的图片为JPG,具体注意问题需要详细查看【设备网络sdk使用手册】* @param lUserID: 登录设备的id* @param lChannel: 设备通道* @param lPicSize: 图片大小* @param lPicQuality: 图片质量* @param sPicbuf: 图片保存路径* @return*/
public String captureJPEGPicture(int lUserID, int lChannel, int lPicSize, int lPicQuality, String sPicbuf)
{NativeLong nlUserID = new NativeLong(lUserID);NativeLong nChannel = new NativeLong(lChannel);HCNetSDK.NET_DVR_JPEGPARA lpJpegPara = new HCNetSDK.NET_DVR_JPEGPARA();lpJpegPara.wPicSize = (short)lPicSize;lpJpegPara.wPicQuality = (short)lPicQuality;// 参数必须写入到结构体,否则在保存图片的时候异常图片lpJpegPara.write();// 创建文件名称String datePath = sPicbuf+"/"+DateUtils.dateTime();// 判断文件夹是否创建File file = new File(datePath);if (!file.exists()){file.mkdirs();}// 文件名称String imageName = DateUtils.fullDateTime()+".jpg";// 全路径String path = datePath+"/"+imageName;// 开始抓图if (!hCNetSDK.NET_DVR_CaptureJPEGPicture(nlUserID, nChannel, lpJpegPara, path)){return "{失败编码:"+hCNetSDK.NET_DVR_GetLastError()+"}";}else {return "抓图成功!";}
}

3. 接口层实现

@RestController
public class DeviceController {@Value("${hksetting.image.dvrPicSavePath}")private String dvrPicSavePath;HIKDevice hikDevice;// 初始化设备调用实现类DeviceController() {if (hikDevice == null) {hikDevice = new HIKDevice();}}@ApiOperation(value = "设备抓图", notes = "设备抓图")@GetMapping(value = "/driverDVRPic")@ResponseBodypublic Object driverDVRPic(@RequestBody JSONObject json){int lUserID = Integer.parseInt(json.get("lUserID").toString());int lChannel = Integer.parseInt(json.get("lChannel").toString());int lPicSize = Integer.parseInt(json.get("lPicSize").toString());int lPicQuality = Integer.parseInt(json.get("lPicQuality").toString());System.out.println(dvrPicSavePath);String msg = hikDevice.captureJPEGPicture(lUserID, lChannel, lPicSize, lPicQuality, dvrPicSavePath);return ResponseUtil.ok(msg);}
}

4. 通过Postman调用测试

  1. 获取设备登录id与设备通道
    注册登录的实现参考文章:4.海康威视-Springboot下实现注册与注销
  2. 测试抓图方法

    抓图成功!

5.海康威视-Spring boot下实现抓图并保存相关推荐

  1. 【spring boot】10.spring boot下的单元测试

    spring boot下的单元测试,思前想后还是需要单独用一章篇幅来看看. 然后在看了介绍和使用时候,我感觉并不想多去看了. 但是还是给后来人留下参考的路径: 官网说明:https://spring. ...

  2. Spring Security 实战:Spring Boot 下的自动配置

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 我们在前几篇 ...

  3. Spring Boot下Druid连接池的使用配置分析

    引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成. 1.  ...

  4. Spring Boot下使用JPA报错:'hibernate.dialect' not set的解决办法

    问题现象: Spring Boot下使用JPA报错:'hibernate.dialect' not set 原因是: 没有设置数据库方言导致的 解决方案: 1.如果配置文件格式为application ...

  5. Spring Boot 下使用谷歌 reCAPTCHA v3

    JSP 时代,我写一个图片验证码组件<JSP 实用程序之简易图片验证码>,那是很老的技术,安全性很低,纯粹练手. 图片验证码(Captcha)这类应用,还是采用第三方提供的好,比较放心.于 ...

  6. Spring Boot下的Redis缓存实战

    最近在做的一个系统涉及到基础数据的频繁调用,大量的网络开销和数据读写给系统带来了极大的性能压力,我们决定引入缓存机制来缓解系统压力. 什么是缓存 提起缓存机制,大概10个程序员总有5种不同的解释吧(姑 ...

  7. Spring Boot下的Tomcat,你真的会用吗?

    点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 来源:锅外的大佬 关注我,回复口令获取可获取独家整理的学习资料: - 001 :领取<Sprin ...

  8. Spring Boot下无法加载主类 org.apache.maven.wrapper.MavenWrapperMain问题解决

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 引言: 在SpringBoot中需要使用mvnw来做相关操作,但是却有时候会报出达不到MavenWr ...

  9. spring boot 下使用@ConponentScan注解遇到的问题

    问题描述 如果你心急看结果,请直接到本文末尾 今天使用了注解操作spring boot,一开始程序无法启动,提示无法找到一个注解注入的类,查询网上,有人说使用@ConponetScan注解,可以指定需 ...

最新文章

  1. 科学就是要勇于承认错误:十大错误科学结论盘点
  2. 字段定义_两大高招逐浪CMS中定义省地市县三级字段显示方式
  3. 小玩流媒体播放——HLS流媒体点播系统
  4. Linux网编程收藏网址
  5. 将SAP订单以XML格式输出
  6. Fliptile POJ - 3279 (翻转)(二进制+对第一行暴力遍历翻转的位置)
  7. 服务器proc文件,特殊文件系统proc
  8. 联通eSIM卡哪些城市可以开通办理
  9. linux复制文件到另一个目录_Linux入门之四-Linux文件目录操作
  10. 关于秩的等式与不等式总结
  11. python中rgb颜色_python颜色显示
  12. H265H264视频流播放
  13. 系统性总结了 Pandas 所有知识点
  14. Python实现借助聚合数据API接口生成某一年的节假日对照表
  15. 《腾讯传》六、“红衣大炮”轰杀“狗日的腾讯”—3Q大战
  16. python获取当前计算机cpu数量
  17. el-menu菜单 -- unique-opened 子菜单唯一性失效
  18. fremaker遍历list_Freemarker中如何遍历List
  19. 使用 Marvelous Designer 为DAZ Studio 的 Genesis8 Female做衣服 1
  20. 【SPA】SPA单页面应用详解

热门文章

  1. Oracle 12C In-Memory特性研究
  2. 面对层出不穷的问题,延迟开学的原因就是取消延时服务?
  3. 公众号查题接口 搜题搭建
  4. 深度链接 Deep Link 开发遇到的坑
  5. 基于校园生活一体化管理系统的需求分析
  6. 1065:奇数求和(C C++)
  7. ups不间断电源品牌_德国阳光蓄电池_蓄电池代理-山东万仁电源设备有限公司
  8. HotSpot 术语表翻译(JVM)
  9. 小学科学杂志小学科学杂志社小学科学编辑部2022年第12期目录
  10. 20210622——Redis概述(一)