From 59e18cfbe1c440f3d0f7ffaa675c127bf82f2414 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期三, 01 三月 2023 17:38:02 +0800 Subject: [PATCH] 油烟接口 --- ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java | 31 ++++++++++++++++++++++++++++--- 1 files changed, 28 insertions(+), 3 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java index 3ccd611..acd2ce6 100644 --- a/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java +++ b/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java @@ -2,11 +2,10 @@ import com.alibaba.druid.util.StringUtils; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ycl.dto.video.AlarmDataParam; -import com.ycl.dto.video.AlarmParam; -import com.ycl.dto.video.CameraInfParam; +import com.ycl.dto.video.*; import com.ycl.entity.video.VideoAlarmReport; import com.ycl.mapper.video.VideoAlarmReportMapper; import com.ycl.service.caseHandler.IViolationsService; @@ -15,8 +14,13 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.imageio.ImageIO; import javax.xml.bind.DatatypeConverter; +import java.awt.*; +import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; import java.io.InputStream; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -61,7 +65,27 @@ byte[] data = DatatypeConverter.parseBase64Binary(alarmParam.getPicData()); InputStream inputStream = new ByteArrayInputStream(data); + try { + if (!StringUtils.isEmpty(alarmParam.getAlarmData().getAlarmObject().toString())) { + String alarmObject = JSON.toJSONString(alarmParam.getAlarmData().getAlarmObject()); + if (!StringUtils.isEmpty(alarmObject)) { + BufferedImage image = ImageIO.read(inputStream); + + Graphics2D g2 = (Graphics2D) image.getGraphics(); + g2.setColor(Color.RED); + g2.setStroke(new BasicStroke(3.0f)); + List<AlarmObject> alarmObjects = JSON.parseArray(alarmObject, AlarmObject.class); + alarmObjects.forEach(o -> { + o.getObjectRect().forEach(rect -> { + g2.drawRect(rect.getX(), rect.getY(), rect.getW(), rect.getH()); + }); + }); + ByteArrayOutputStream os = new ByteArrayOutputStream(); + ImageIO.write(image, extension, os); + inputStream = new ByteArrayInputStream(os.toByteArray()); + } + } picData = mediaFileUtil.savePicture(inputStream, extension); } catch (Exception e) { e.printStackTrace(); @@ -81,6 +105,7 @@ .channel(cameraInf.getChannel()).platResourceId(cameraInf.getPlatResourceID()) .picData(picData).alarmTime(instant.atZone(zoneId).toLocalDateTime()) .alarmId(alarmData.getAlarmID()).algoType(alarmData.getAlgoType()) + .alarmType(alarmData.getAlarmType()).alarmName(alarmData.getAlarmName()) .algoName(alarmData.getAlgoName()).alarmObj(JSON.toJSONString(alarmData.getAlarmObject())) .build(); if (list.size() == 0) { -- Gitblit v1.8.0