图片按角度进行翻转

This commit is contained in:
wyw
2024-08-19 18:11:50 +08:00
parent 511c04b364
commit ded7d4a6e6
6 changed files with 118 additions and 10 deletions

View File

@ -43,6 +43,7 @@
<artifactId>fastbee-waterele-service</artifactId>
</dependency>
</dependencies>

View File

@ -8,6 +8,7 @@ import com.fastbee.common.core.page.TableDataInfo;
import com.fastbee.common.enums.BusinessType;
import com.fastbee.common.exception.ServiceException;
import com.fastbee.common.model.bto.DoorAlertBto;
import com.fastbee.common.utils.RotateImageUtils;
import com.fastbee.common.utils.file.FileUploadUtils;
import com.fastbee.common.utils.poi.ExcelUtil;
import com.fastbee.data.controller.anfang.service.IUploadedPhotosService;
@ -15,12 +16,18 @@ import com.fastbee.iot.model.anfang.UploadedPhotos;
import com.fastbee.iot.service.impl.DeviceServiceImpl;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
@ -97,8 +104,17 @@ public class UploadedPhotosController extends BaseController {
try {
// 上传文件路径
String filePath = RuoYiConfig.getUploadPath();
// 上传并返回新文件名称
String fileName = FileUploadUtils.upload(filePath, photo);
String fileName = FileUploadUtils.uploadByAngle(filePath, photo, 180);
// BufferedImage src = ImageIO.read(photo.getInputStream());
// BufferedImage rotate = RotateImageUtils.Rotate(src, 180);
// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// ImageIO.write(rotate, "png",byteArrayOutputStream);
// InputStream input = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
// String name = photo.getName();
// String originalFilename = photo.getOriginalFilename();
// MultipartFile multipartFile = new MockMultipartFile("file",photo.getOriginalFilename(),"text/plain", input);
// // 上传并返回新文件名称
// String fileName = FileUploadUtils.upload(filePath, multipartFile);
// 处理可能为空的字段
Double latitude = isEmpty(lat) ? 0.0 : Double.valueOf(lat);
Double longitude = isEmpty(lng) ? 0.0 : Double.valueOf(lng);
@ -110,10 +126,10 @@ public class UploadedPhotosController extends BaseController {
//抓拍监控,并返回路径
String monitorPath = uploadedPhotosService.captureMonitorPhoto(sn);
//推送告警短信通知
uploadedPhotosService.sendAlarmMessage(sn, doorState, shakeState,eventType);
uploadedPhotosService.sendAlarmMessage(sn, doorState, shakeState, eventType);
UploadedPhotos uploadedPhotos = new UploadedPhotos(
null, fileName, monitorPath, imei, sn, latitude, longitude,
temperature, doorState, shakeState,cpuTemp,eventType,anFangStatus, date
temperature, doorState, shakeState, cpuTemp, eventType, anFangStatus, date
);
return toAjax(uploadedPhotosService.insertUploadedPhotos(uploadedPhotos));
} catch (IOException e) {
@ -157,9 +173,9 @@ public class UploadedPhotosController extends BaseController {
//抓拍监控,并返回路径
String monitorPath = uploadedPhotosService.captureMonitorPhoto(sn);
//推送告警短信通知
uploadedPhotosService.sendAlarmMessage(sn, doorState, shakeState,eventType);
uploadedPhotosService.sendAlarmMessage(sn, doorState, shakeState, eventType);
UploadedPhotos uploadedPhotos = new UploadedPhotos(
null, "", monitorPath, imei, sn, latitude, longitude, temperature, doorState, shakeState,cpuTemp,eventType,anFangStatus, date
null, "", monitorPath, imei, sn, latitude, longitude, temperature, doorState, shakeState, cpuTemp, eventType, anFangStatus, date
);
return toAjax(uploadedPhotosService.insertUploadedPhotos(uploadedPhotos));
}