diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java index 5be2a68..ff280af 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java @@ -10,11 +10,12 @@ import com.spire.doc.fields.DocPicture; import com.spire.doc.fields.TextRange; +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; +import java.util.*; import java.util.List; -import java.util.Map; /** * @author cz @@ -123,6 +124,35 @@ compile.writeToFile("D:\\casic\\cut\\out_test3.docx"); } + public static void cutImage() throws IOException { + String originalImg = "D:\\casic\\cut\\sign.png"; + // 读入大图 + File file = new File(originalImg); + FileInputStream fis = new FileInputStream(file); + System.out.println(file.exists()); + BufferedImage image = ImageIO.read(fis); + /* + * 假设我需要切割的四点坐标为a(20,30)b(200,40)c(30,200)d(200,210) + * 起始坐标为(最小的x,最小的y) + * 此时的实际切割坐标应为由a为起始坐标,width为(x坐标最大的点的x - a的x坐标),height为(y坐标最大的点的y - a的y坐标) + * 此时的width为180,height为180 + */ + //切割图片 + BufferedImage bf = new BufferedImage(image.getWidth(), image.getHeight(), image.getType()); + Graphics2D graphics2D = bf.createGraphics(); + +// graphics2D.drawImage(image, 20, 30, 180, 180, 0, 0, 180, 180, null); + + graphics2D.drawImage(image, 0, 0, image.getWidth() / 2, image.getHeight(), 0, 0, 0, 0, null); + graphics2D.dispose(); + System.out.println("图片的宽度为:" + image.getWidth() + "图片的高度为:" + image.getHeight());//230,278 + //输出图片 + Random random = new Random(); + int j = random.nextInt(1000); + ImageIO.write(bf, "png", new File("D:\\casic\\cut\\1664544088508088321" + j + ".png")); + System.out.println("完成切割"); + } + public static void main(String[] args) throws Exception { //内嵌表信息 // Example.populateTableNest(); @@ -203,4 +233,5 @@ return electronicImage; } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java index 5be2a68..ff280af 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/Example.java @@ -10,11 +10,12 @@ import com.spire.doc.fields.DocPicture; import com.spire.doc.fields.TextRange; +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; import java.io.*; -import java.util.ArrayList; -import java.util.HashMap; +import java.util.*; import java.util.List; -import java.util.Map; /** * @author cz @@ -123,6 +124,35 @@ compile.writeToFile("D:\\casic\\cut\\out_test3.docx"); } + public static void cutImage() throws IOException { + String originalImg = "D:\\casic\\cut\\sign.png"; + // 读入大图 + File file = new File(originalImg); + FileInputStream fis = new FileInputStream(file); + System.out.println(file.exists()); + BufferedImage image = ImageIO.read(fis); + /* + * 假设我需要切割的四点坐标为a(20,30)b(200,40)c(30,200)d(200,210) + * 起始坐标为(最小的x,最小的y) + * 此时的实际切割坐标应为由a为起始坐标,width为(x坐标最大的点的x - a的x坐标),height为(y坐标最大的点的y - a的y坐标) + * 此时的width为180,height为180 + */ + //切割图片 + BufferedImage bf = new BufferedImage(image.getWidth(), image.getHeight(), image.getType()); + Graphics2D graphics2D = bf.createGraphics(); + +// graphics2D.drawImage(image, 20, 30, 180, 180, 0, 0, 180, 180, null); + + graphics2D.drawImage(image, 0, 0, image.getWidth() / 2, image.getHeight(), 0, 0, 0, 0, null); + graphics2D.dispose(); + System.out.println("图片的宽度为:" + image.getWidth() + "图片的高度为:" + image.getHeight());//230,278 + //输出图片 + Random random = new Random(); + int j = random.nextInt(1000); + ImageIO.write(bf, "png", new File("D:\\casic\\cut\\1664544088508088321" + j + ".png")); + System.out.println("完成切割"); + } + public static void main(String[] args) throws Exception { //内嵌表信息 // Example.populateTableNest(); @@ -203,4 +233,5 @@ return electronicImage; } + } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java index 3cc19f6..624a2d0 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/register/ImageTool.java @@ -47,33 +47,5 @@ return subfileUrls; } - public static void main(String[] agrs) throws IOException { - String originalImg = "D:\\casic\\cut\\sign.png"; - // 读入大图 - File file = new File(originalImg); - FileInputStream fis = new FileInputStream(file); - System.out.println(file.exists()); - BufferedImage image = ImageIO.read(fis); - /* - * 假设我需要切割的四点坐标为a(20,30)b(200,40)c(30,200)d(200,210) - * 起始坐标为(最小的x,最小的y) - * 此时的实际切割坐标应为由a为起始坐标,width为(x坐标最大的点的x - a的x坐标),height为(y坐标最大的点的y - a的y坐标) - * 此时的width为180,height为180 - */ - //切割图片 - BufferedImage bf = new BufferedImage(image.getWidth(), image.getHeight(), image.getType()); - Graphics2D graphics2D = bf.createGraphics(); - -// graphics2D.drawImage(image, 20, 30, 180, 180, 0, 0, 180, 180, null); - - graphics2D.drawImage(image, 0, 0, image.getWidth()/2, image.getHeight(), 0, 0, 0, 0, null); - graphics2D.dispose(); - System.out.println("图片的宽度为:" + image.getWidth() + "图片的高度为:" + image.getHeight());//230,278 - //输出图片 - Random random = new Random(); - int j = random.nextInt(1000); - ImageIO.write(bf, "png", new File("D:\\casic\\cut\\1664544088508088321" + j + ".png")); - System.out.println("完成切割"); - } }