5.海康威视-Spring boot下实现抓图并保存
1. 配置yml文件
在yml文件中配置保存文件的地址
# 海康配置
hksetting:image:# 抓取图片上传路径dvrPicSavePath: F://ideaworkspace/hk-project/dvr-pic
2. 抓图实现方式
- 创建图片结构体: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-一般 */
}
- 创建文件名称
- 调用抓图方法: 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调用测试
- 获取设备登录id与设备通道
注册登录的实现参考文章:4.海康威视-Springboot下实现注册与注销 - 测试抓图方法
抓图成功!
5.海康威视-Spring boot下实现抓图并保存相关推荐
- 【spring boot】10.spring boot下的单元测试
spring boot下的单元测试,思前想后还是需要单独用一章篇幅来看看. 然后在看了介绍和使用时候,我感觉并不想多去看了. 但是还是给后来人留下参考的路径: 官网说明:https://spring. ...
- Spring Security 实战:Spring Boot 下的自动配置
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「码农小胖哥」 1. 前言 我们在前几篇 ...
- Spring Boot下Druid连接池的使用配置分析
引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成. 1. ...
- Spring Boot下使用JPA报错:'hibernate.dialect' not set的解决办法
问题现象: Spring Boot下使用JPA报错:'hibernate.dialect' not set 原因是: 没有设置数据库方言导致的 解决方案: 1.如果配置文件格式为application ...
- Spring Boot 下使用谷歌 reCAPTCHA v3
JSP 时代,我写一个图片验证码组件<JSP 实用程序之简易图片验证码>,那是很老的技术,安全性很低,纯粹练手. 图片验证码(Captcha)这类应用,还是采用第三方提供的好,比较放心.于 ...
- Spring Boot下的Redis缓存实战
最近在做的一个系统涉及到基础数据的频繁调用,大量的网络开销和数据读写给系统带来了极大的性能压力,我们决定引入缓存机制来缓解系统压力. 什么是缓存 提起缓存机制,大概10个程序员总有5种不同的解释吧(姑 ...
- Spring Boot下的Tomcat,你真的会用吗?
点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 来源:锅外的大佬 关注我,回复口令获取可获取独家整理的学习资料: - 001 :领取<Sprin ...
- Spring Boot下无法加载主类 org.apache.maven.wrapper.MavenWrapperMain问题解决
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 引言: 在SpringBoot中需要使用mvnw来做相关操作,但是却有时候会报出达不到MavenWr ...
- spring boot 下使用@ConponentScan注解遇到的问题
问题描述 如果你心急看结果,请直接到本文末尾 今天使用了注解操作spring boot,一开始程序无法启动,提示无法找到一个注解注入的类,查询网上,有人说使用@ConponetScan注解,可以指定需 ...
最新文章
- 科学就是要勇于承认错误:十大错误科学结论盘点
- 字段定义_两大高招逐浪CMS中定义省地市县三级字段显示方式
- 小玩流媒体播放——HLS流媒体点播系统
- Linux网编程收藏网址
- 将SAP订单以XML格式输出
- Fliptile POJ - 3279 (翻转)(二进制+对第一行暴力遍历翻转的位置)
- 服务器proc文件,特殊文件系统proc
- 联通eSIM卡哪些城市可以开通办理
- linux复制文件到另一个目录_Linux入门之四-Linux文件目录操作
- 关于秩的等式与不等式总结
- python中rgb颜色_python颜色显示
- H265H264视频流播放
- 系统性总结了 Pandas 所有知识点
- Python实现借助聚合数据API接口生成某一年的节假日对照表
- 《腾讯传》六、“红衣大炮”轰杀“狗日的腾讯”—3Q大战
- python获取当前计算机cpu数量
- el-menu菜单 -- unique-opened 子菜单唯一性失效
- fremaker遍历list_Freemarker中如何遍历List
- 使用 Marvelous Designer 为DAZ Studio 的 Genesis8 Female做衣服 1
- 【SPA】SPA单页面应用详解