From ddb9b1a011b26fec839618fe908dd7d1bacf4a9b Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 22 Oct 2021 20:02:36 +0800
Subject: [PATCH] 1.保安单位树接口修改 2.现场保安员,单位检查字段修改,接口修改 3.缴费记录接口修改 4.出资人,管理人员字段调整,接口修改,导出新增示例 5.考试中题目返回去除答案

---
 src/main/java/org/springblade/common/utils/QRCodeUtil.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/springblade/common/utils/QRCodeUtil.java b/src/main/java/org/springblade/common/utils/QRCodeUtil.java
index df6c82c..17e951f 100644
--- a/src/main/java/org/springblade/common/utils/QRCodeUtil.java
+++ b/src/main/java/org/springblade/common/utils/QRCodeUtil.java
@@ -23,6 +23,8 @@
 import java.net.URL;
 import java.util.HashMap;
 
+import static com.google.zxing.client.j2se.MatrixToImageConfig.BLACK;
+import static com.google.zxing.client.j2se.MatrixToImageConfig.WHITE;
 import static org.bouncycastle.asn1.x500.style.RFC4519Style.cn;
 
 /**
@@ -226,6 +228,9 @@
 		hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
 
 		BitMatrix bitMatrix =qrCodeWriter.encode(text,BarcodeFormat.QR_CODE, width, height,hints);
+		//删除白边
+//		BufferedImage bufferedImage = deleteWhite(bitMatrix);
+
 		//BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
 
 		ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
@@ -234,4 +239,53 @@
 		return pngOutputStream.toByteArray();
 	}
 
+	/**
+	 * 去白边的话,调用这个方法
+	 * @param matrix
+	 * @return
+	 */
+	private static BufferedImage  deleteWhite(BitMatrix matrix) {
+		int[] rec = matrix.getEnclosingRectangle();
+		int resWidth = rec[2] + 1;
+		int resHeight = rec[3] + 1;
+
+		BitMatrix resMatrix = new BitMatrix(resWidth, resHeight);
+		resMatrix.clear();
+		for (int i = 0; i < resWidth; i++) {
+			for (int j = 0; j < resHeight; j++) {
+				if (matrix.get(i + rec[0], j + rec[1]))
+					resMatrix.set(i, j);
+			}
+		}
+
+		int width = resMatrix.getWidth();
+		int height = resMatrix.getHeight();
+		BufferedImage image = new BufferedImage(width, height,
+			BufferedImage.TYPE_INT_RGB);
+		for (int x = 0; x < width; x++) {
+			for (int y = 0; y < height; y++) {
+				image.setRGB(x, y, resMatrix.get(x, y) ? BLACK
+					: WHITE);
+			}
+		}
+		return image;
+	}
+
+
+//	private static BitMatrix deleteWhite(BitMatrix matrix) {
+//		int[] rec = matrix.getEnclosingRectangle();
+//		int resWidth = rec[2] + 1;
+//		int resHeight = rec[3] + 1;
+//
+//		BitMatrix resMatrix = new BitMatrix(resWidth, resHeight);
+//		resMatrix.clear();
+//		for (int i = 0; i < resWidth; i++) {
+//			for (int j = 0; j < resHeight; j++) {
+//				if (matrix.get(i + rec[0], j + rec[1]))
+//					resMatrix.set(i, j);
+//			}
+//		}
+//		return resMatrix;
+//	}
+
 }

--
Gitblit v1.9.3