|
|
@ -0,0 +1,943 @@
|
|
|
|
|
|
|
|
package com.parkingLot.quartz;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
|
|
|
|
import com.parkingLot.dto.AreaInfoDTO;
|
|
|
|
|
|
|
|
import com.parkingLot.dto.DataDTO;
|
|
|
|
|
|
|
|
import com.parkingLot.dto.Response.CommonResponse;
|
|
|
|
|
|
|
|
import com.parkingLot.service.RemoteCallService;
|
|
|
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
|
|
import org.springframework.core.io.ClassPathResource;
|
|
|
|
|
|
|
|
import org.springframework.core.io.Resource;
|
|
|
|
|
|
|
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
|
|
|
|
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.imageio.ImageIO;
|
|
|
|
|
|
|
|
import java.awt.*;
|
|
|
|
|
|
|
|
import java.awt.image.BufferedImage;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 定时任务更新图片
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @author wu
|
|
|
|
|
|
|
|
* @since 2024/12/17 09:15
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
|
|
|
@Configuration
|
|
|
|
|
|
|
|
@EnableScheduling
|
|
|
|
|
|
|
|
public class QuartzImg {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@javax.annotation.Resource
|
|
|
|
|
|
|
|
private RemoteCallService remoteCallService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private DataDTO dataDTO;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 获取停车场实时数据
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
private void getAreaFreeSpaceNum() {
|
|
|
|
|
|
|
|
CommonResponse commonResponse = remoteCallService.GetAreaFreeSpaceNum();
|
|
|
|
|
|
|
|
Object data = commonResponse.getData();
|
|
|
|
|
|
|
|
if (data == null) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
dataDTO = BeanUtil.copyProperties(data, DataDTO.class);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇南镇北输出反面91更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "0 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgOne() {
|
|
|
|
|
|
|
|
getAreaFreeSpaceNum();
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.91_反面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 18);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[2];
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇南停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇北停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 133; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 2 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = height - 68;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.91输出反面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇北输出正面91更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "2 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgTow() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.91_正面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 18);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[2];
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇东停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇北停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 133; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 2 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = height - 68;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.91输出正面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇北输出正面92更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "2 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgThree() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.92_正面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 18);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[2];
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇东停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇北停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 133; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 2 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = height - 68;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.92输出正面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇北输出正面93更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "2 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgFour() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.93_正面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 18);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[2];
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇东停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇北停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 133; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 2 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = height - 68;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.93输出正面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇南镇北输出正面94更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "2 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgFive() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.94_正面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 18);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[2];
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇南停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇北停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 133; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 2 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = height - 68;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.94输出正面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇北输出正面95更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "2 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgSix() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.95_正面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 18);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[2];
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇东停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇北停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 133; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 2 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = height - 68;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.95输出正面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇南输出反面96更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "2 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgSeven() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.96_反面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 18);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[2];
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇东停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇南停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 133; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 2 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = height - 68;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.96输出反面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇北输出正面96更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "2 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgEight() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.96_正面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 18);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[2];
|
|
|
|
|
|
|
|
;
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇东停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇北停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 133; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 2 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = height - 68;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.96输出正面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇南镇北输出正面101更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "2 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgNine() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.101_正面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 50);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[3];
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇东停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[2] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇南停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇北停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 20; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 5 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = yPosition - 70;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.101输出正面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇南镇北输出正面102更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "2 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgTen() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.102_正面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 50);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[3];
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇东停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[2] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇南停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇北停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 20; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 5 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = yPosition - 70;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.102输出正面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇南镇北输出正面103更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "2 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgEleven() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.103_正面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 50);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[3];
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇东停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[2] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇南停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇北停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 20; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 5 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = yPosition - 70;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.103输出正面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇南镇北输出正面104更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "2 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgTwelve() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载图片资源
|
|
|
|
|
|
|
|
Resource resource = new ClassPathResource("static/templates/192.168.1.104_正面.bmp");
|
|
|
|
|
|
|
|
InputStream inputStream = resource.getInputStream();
|
|
|
|
|
|
|
|
Image src = ImageIO.read(inputStream);
|
|
|
|
|
|
|
|
int width = src.getWidth(null);
|
|
|
|
|
|
|
|
int height = src.getHeight(null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象用于绘制
|
|
|
|
|
|
|
|
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = image.createGraphics();
|
|
|
|
|
|
|
|
// 绘制原始图片
|
|
|
|
|
|
|
|
g.drawImage(src, 0, 0, width, height, null);
|
|
|
|
|
|
|
|
// 设置字体颜色
|
|
|
|
|
|
|
|
g.setColor(new Color(152, 251, 152)); // 设置字体颜色为淡绿色
|
|
|
|
|
|
|
|
// 设置加粗字体,大小为18
|
|
|
|
|
|
|
|
Font font = new Font("黑体", Font.BOLD, 50);
|
|
|
|
|
|
|
|
g.setFont(font);
|
|
|
|
|
|
|
|
// 要绘制的字符串
|
|
|
|
|
|
|
|
String[] text = new String[3];
|
|
|
|
|
|
|
|
// 创建FontMetrics对象用于获取字符串的宽度
|
|
|
|
|
|
|
|
FontMetrics fm = g.getFontMetrics(font);
|
|
|
|
|
|
|
|
if (CollectionUtil.isEmpty(dataDTO.getAreaInfo())) {
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
for (AreaInfoDTO dto : dataDTO.getAreaInfo()) {
|
|
|
|
|
|
|
|
if ("镇东停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[2] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇南停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[1] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if ("镇北停车场".equals(dto.getAreaName())) {
|
|
|
|
|
|
|
|
text[0] = String.valueOf(dto.getFreeSpaceNum());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 设置初始y坐标
|
|
|
|
|
|
|
|
int yPosition = height - 20; // 初始y位置
|
|
|
|
|
|
|
|
// 循环绘制每个字符串,计算它们的宽度并进行右对齐
|
|
|
|
|
|
|
|
for (String str : text) {
|
|
|
|
|
|
|
|
int stringWidth = fm.stringWidth(str); // 计算字符串的宽度
|
|
|
|
|
|
|
|
// 计算绘制文本的x坐标,使文本右对齐
|
|
|
|
|
|
|
|
int xPosition = width - 5 - stringWidth;
|
|
|
|
|
|
|
|
g.drawString(str, xPosition, yPosition); // 绘制字符串
|
|
|
|
|
|
|
|
// 调整y坐标,确保文本不重叠
|
|
|
|
|
|
|
|
yPosition = yPosition - 70;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 输出文件路径
|
|
|
|
|
|
|
|
File out = new File("D:\\fujica\\PushScreenInfo\\192.168.1.104输出正面.bmp");
|
|
|
|
|
|
|
|
// 检查目标文件所在的目录是否存在
|
|
|
|
|
|
|
|
File parentDir = out.getParentFile();
|
|
|
|
|
|
|
|
if (!parentDir.exists()) {
|
|
|
|
|
|
|
|
// 如果目录不存在,创建该目录
|
|
|
|
|
|
|
|
parentDir.mkdirs();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 保存修改后的图片
|
|
|
|
|
|
|
|
ImageIO.write(image, "bmp", out);
|
|
|
|
|
|
|
|
log.info("图片保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇南镇北镇北输出正反91更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "5 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgThirteen() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载第一个图像
|
|
|
|
|
|
|
|
File file1 = new File("D:\\fujica\\PushScreenInfo\\192.168.1.91输出正面.bmp");
|
|
|
|
|
|
|
|
BufferedImage image1 = ImageIO.read(file1);
|
|
|
|
|
|
|
|
// 加载第二个图像
|
|
|
|
|
|
|
|
File file2 = new File("D:\\fujica\\PushScreenInfo\\192.168.1.91输出反面.bmp");
|
|
|
|
|
|
|
|
BufferedImage image2 = ImageIO.read(file2);
|
|
|
|
|
|
|
|
// 计算合并后图像的宽度和高度
|
|
|
|
|
|
|
|
int totalWidth = image1.getWidth() + image2.getWidth(); // 宽度是两个图像宽度之和
|
|
|
|
|
|
|
|
int maxHeight = Math.max(image1.getHeight(), image2.getHeight()); // 高度是两个图像中较大的高度
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象,用于保存合并后的图像
|
|
|
|
|
|
|
|
BufferedImage mergedImage = new BufferedImage(totalWidth, maxHeight, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = mergedImage.createGraphics();
|
|
|
|
|
|
|
|
// 绘制第一个图像到合并图像的左侧
|
|
|
|
|
|
|
|
g.drawImage(image1, 0, 0, null);
|
|
|
|
|
|
|
|
// 绘制第二个图像到合并图像的右侧
|
|
|
|
|
|
|
|
g.drawImage(image2, image1.getWidth(), 0, null);
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 保存合并后的图像
|
|
|
|
|
|
|
|
File outFile = new File("D:\\fujica\\PushScreenInfo\\192.168.1.91输出正反.bmp");
|
|
|
|
|
|
|
|
ImageIO.write(mergedImage, "bmp", outFile);
|
|
|
|
|
|
|
|
log.info("图像合并并保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 镇东镇东镇北镇南输出正反96更新图片
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Scheduled(cron = "5 */1 * * * *")
|
|
|
|
|
|
|
|
public void updateImgFourteen() {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
// 加载第一个图像
|
|
|
|
|
|
|
|
File file1 = new File("D:\\fujica\\PushScreenInfo\\192.168.1.96输出正面.bmp");
|
|
|
|
|
|
|
|
BufferedImage image1 = ImageIO.read(file1);
|
|
|
|
|
|
|
|
// 加载第二个图像
|
|
|
|
|
|
|
|
File file2 = new File("D:\\fujica\\PushScreenInfo\\192.168.1.96输出反面.bmp");
|
|
|
|
|
|
|
|
BufferedImage image2 = ImageIO.read(file2);
|
|
|
|
|
|
|
|
// 计算合并后图像的宽度和高度
|
|
|
|
|
|
|
|
int totalWidth = image1.getWidth() + image2.getWidth(); // 宽度是两个图像宽度之和
|
|
|
|
|
|
|
|
int maxHeight = Math.max(image1.getHeight(), image2.getHeight()); // 高度是两个图像中较大的高度
|
|
|
|
|
|
|
|
// 创建一个新的BufferedImage对象,用于保存合并后的图像
|
|
|
|
|
|
|
|
BufferedImage mergedImage = new BufferedImage(totalWidth, maxHeight, BufferedImage.TYPE_INT_RGB);
|
|
|
|
|
|
|
|
Graphics g = mergedImage.createGraphics();
|
|
|
|
|
|
|
|
// 绘制第一个图像到合并图像的左侧
|
|
|
|
|
|
|
|
g.drawImage(image1, 0, 0, null);
|
|
|
|
|
|
|
|
// 绘制第二个图像到合并图像的右侧
|
|
|
|
|
|
|
|
g.drawImage(image2, image1.getWidth(), 0, null);
|
|
|
|
|
|
|
|
// 释放图形上下文
|
|
|
|
|
|
|
|
g.dispose();
|
|
|
|
|
|
|
|
// 保存合并后的图像
|
|
|
|
|
|
|
|
File outFile = new File("D:\\fujica\\PushScreenInfo\\192.168.1.96输出正反.bmp");
|
|
|
|
|
|
|
|
ImageIO.write(mergedImage, "bmp", outFile);
|
|
|
|
|
|
|
|
log.info("图像合并并保存成功!");
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|