123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package controller;
- import config.Config;
- import config.subConfig.AxisConfig;
- import config.subConfig.DoorConfig;
- import config.subConfig.TemplateConfig;
- import model.Axis;
- import model.Door;
- import model.ModuleInAxis;
- import model.Room;
- import utils.TemplateUtils;
- import utils.YmlUtils;
- import javax.imageio.ImageIO;
- import java.awt.*;
- import java.awt.image.BufferedImage;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @author duh
- * @create 2018/7/27 13:30
- * @email duh@elab-plus.com
- **/
- public class DrawImageController {
- private static Config config = YmlUtils.readYml();
- /**
- * 画在panel中
- */
- public static void saveImage(List<Integer> position) {
- AxisConfig axisConfig = config.getAxisPoint();
- int length = axisConfig.getLength() + axisConfig.getX() + 500;
- int width = axisConfig.getY() + 500;
- BufferedImage bufferedImage = new BufferedImage(length,
- width, BufferedImage.TYPE_INT_RGB);
- Graphics2D g2d = bufferedImage.createGraphics();
- drawImageContent(position, g2d);
- try {
- ImageIO.write(bufferedImage, "jpeg", new File("E:\\config\\jpanel" + getImageNameByPosition(position) + ".jpg"));
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private static void drawImageContent(List<Integer> position, Graphics g) {
- ModuleInAxis.setAxisPointConfig(config.getAxisPoint());
- // drawAxis(config, g);
- Room room = new Room(config.getRoom());
- drawRoom(room, g);
- drawImageTemplate(room, position, g);
- TemplateUtils.setTemplateIndex(0);
- }
- /**
- * 画坐标系
- *
- * @param config
- * @param g
- */
- private static void drawAxis(Config config, Graphics g) {
- Axis axis = new Axis();
- AxisConfig axisConfig = config.getAxisPoint();
- //ModuleInAxis已设置坐标轴的偏转
- axis.setX(0);
- axis.setY(0);
- axis.setxLength(axisConfig.getLength());
- axis.setyLength(axisConfig.getWidth());
- axis.setxSpacing(axisConfig.getxSpacing());
- axis.setySpacing(axisConfig.getySpacing());
- // System.out.println("axis3 x="+axis.getX());
- axis.drawSelf(g);
- }
- private static void drawRoom(Room room, Graphics g) {
- room.drawSelf(g);
- DoorConfig doorConfig = config.getDoor();
- Door door = new Door();
- door.setConfig(doorConfig);
- door.setRoom(room);
- door.drawSelf(g);
- }
- private static void drawImageTemplate(Room room, List<Integer> position, Graphics g) {
- List<TemplateConfig> templateList = config.getTemplates();
- TemplateUtils.setRoom(room);
- TemplateUtils.drawTemplateWithArray(position, templateList, g);
- }
- private static String getImageNameByPosition(List<Integer> position){
- StringBuffer sb = new StringBuffer();
- position.forEach(x->sb.append(x));
- return sb.toString();
- }
- public static void main(String[] args) {
- //
- List<Integer> position = new ArrayList<>();
- position.add(321);
- position.add(312);
- position.add(932);
- saveImage(position);
- }
- }
|