From 6394c64bf7865a4853750d210b4c1819b5c21529 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A9=E7=88=B1=E6=9C=89=E6=83=85?= Date: Mon, 9 May 2022 12:08:57 +0800 Subject: [PATCH] =?UTF-8?q?U=20=E8=A7=A3=E5=86=B3=20=E8=83=8C=E6=99=AF?= =?UTF-8?q?=E5=9B=BE=E4=B8=BA=20png=20=E8=AE=BE=E7=BD=AE=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2=E7=B1=BB=E5=9E=8B=E4=B8=BA=20jpg=20=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E5=9B=BE=E7=89=87=E5=8F=98=E8=89=B2=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generator/AbstractImageCaptchaGenerator.java | 10 +++++++--- .../generator/common/util/CaptchaImageUtils.java | 5 ++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/cloud/tianai/captcha/generator/AbstractImageCaptchaGenerator.java b/src/main/java/cloud/tianai/captcha/generator/AbstractImageCaptchaGenerator.java index 2d09012..ad8ab44 100644 --- a/src/main/java/cloud/tianai/captcha/generator/AbstractImageCaptchaGenerator.java +++ b/src/main/java/cloud/tianai/captcha/generator/AbstractImageCaptchaGenerator.java @@ -10,6 +10,7 @@ import lombok.Setter; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.InputStream; @@ -66,9 +67,12 @@ public abstract class AbstractImageCaptchaGenerator implements ImageCaptchaGener return result; } ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - long currentTimeMillis = System.currentTimeMillis(); - ImgWriter.write(bufferedImage, formatType, byteArrayOutputStream, -1); - System.out.println("耗时:" + (System.currentTimeMillis() - currentTimeMillis)); + if (CaptchaImageUtils.isPng(formatType) || CaptchaImageUtils.isJpeg(formatType)) { + // 如果是 jpg 或者 png图片的话 用hutool的生成 + ImgWriter.write(bufferedImage, formatType, byteArrayOutputStream, -1); + }else { + ImageIO.write(bufferedImage, formatType, byteArrayOutputStream); + } //转换成字节码 byte[] data = byteArrayOutputStream.toByteArray(); String base64 = Base64.getEncoder().encodeToString(data); diff --git a/src/main/java/cloud/tianai/captcha/generator/common/util/CaptchaImageUtils.java b/src/main/java/cloud/tianai/captcha/generator/common/util/CaptchaImageUtils.java index 944867c..a9ade5c 100644 --- a/src/main/java/cloud/tianai/captcha/generator/common/util/CaptchaImageUtils.java +++ b/src/main/java/cloud/tianai/captcha/generator/common/util/CaptchaImageUtils.java @@ -8,9 +8,7 @@ import java.awt.*; import java.awt.geom.Area; import java.awt.geom.CubicCurve2D; import java.awt.geom.QuadCurve2D; -import java.awt.image.BufferedImage; -import java.awt.image.PixelGrabber; -import java.awt.image.RenderedImage; +import java.awt.image.*; import java.io.InputStream; import java.net.URL; import java.util.ArrayList; @@ -564,4 +562,5 @@ public class CaptchaImageUtils { public static boolean isPng(String type) { return TYPE_PNG.equalsIgnoreCase(type); } + }