diff --git a/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/AbstractCaptcha.java b/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/AbstractCaptcha.java index 0218667ff..6b502c9df 100644 --- a/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/AbstractCaptcha.java +++ b/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/AbstractCaptcha.java @@ -72,7 +72,7 @@ public abstract class AbstractCaptcha implements ICaptcha { /** * 背景色 */ - protected Color background; + protected Color background = Color.WHITE; /** * 文字透明度 */ @@ -267,7 +267,7 @@ public abstract class AbstractCaptcha implements ICaptcha { } /** - * 设置背景色 + * 设置背景色,{@code null}表示透明背景 * * @param background 背景色 * @since 4.1.22 diff --git a/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/CircleCaptcha.java b/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/CircleCaptcha.java index b227463ba..713e62c1b 100644 --- a/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/CircleCaptcha.java +++ b/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/CircleCaptcha.java @@ -12,14 +12,12 @@ package org.dromara.hutool.swing.captcha; -import org.dromara.hutool.core.util.ObjUtil; import org.dromara.hutool.core.util.RandomUtil; import org.dromara.hutool.swing.captcha.generator.CodeGenerator; import org.dromara.hutool.swing.captcha.generator.RandomGenerator; -import org.dromara.hutool.swing.img.color.ColorUtil; import org.dromara.hutool.swing.img.GraphicsUtil; +import org.dromara.hutool.swing.img.color.ColorUtil; -import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; @@ -94,8 +92,8 @@ public class CircleCaptcha extends AbstractCaptcha { @Override public Image createImage(final String code) { - final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - final Graphics2D g = GraphicsUtil.createGraphics(image, ObjUtil.defaultIfNull(this.background, Color.WHITE)); + final BufferedImage image = new BufferedImage(width, height, (null == this.background) ? BufferedImage.TYPE_4BYTE_ABGR : BufferedImage.TYPE_INT_RGB); + final Graphics2D g = GraphicsUtil.createGraphics(image, this.background); try { // 随机画干扰圈圈 diff --git a/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/LineCaptcha.java b/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/LineCaptcha.java index bda92cba8..8fed11add 100644 --- a/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/LineCaptcha.java +++ b/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/LineCaptcha.java @@ -12,14 +12,12 @@ package org.dromara.hutool.swing.captcha; -import org.dromara.hutool.core.util.ObjUtil; import org.dromara.hutool.core.util.RandomUtil; import org.dromara.hutool.swing.captcha.generator.CodeGenerator; import org.dromara.hutool.swing.captcha.generator.RandomGenerator; -import org.dromara.hutool.swing.img.color.ColorUtil; import org.dromara.hutool.swing.img.GraphicsUtil; +import org.dromara.hutool.swing.img.color.ColorUtil; -import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; @@ -88,8 +86,8 @@ public class LineCaptcha extends AbstractCaptcha { @Override public Image createImage(final String code) { // 图像buffer - final BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - final Graphics2D g = GraphicsUtil.createGraphics(image, ObjUtil.defaultIfNull(this.background, Color.WHITE)); + final BufferedImage image = new BufferedImage(width, height, (null == this.background) ? BufferedImage.TYPE_4BYTE_ABGR : BufferedImage.TYPE_INT_RGB); + final Graphics2D g = GraphicsUtil.createGraphics(image, this.background); try { // 干扰线 diff --git a/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/ShearCaptcha.java b/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/ShearCaptcha.java index f617801c3..3edcf7963 100644 --- a/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/ShearCaptcha.java +++ b/hutool-swing/src/main/java/org/dromara/hutool/swing/captcha/ShearCaptcha.java @@ -94,8 +94,8 @@ public class ShearCaptcha extends AbstractCaptcha { @Override public Image createImage(final String code) { - final BufferedImage image = new BufferedImage(this.width, this.height, BufferedImage.TYPE_INT_RGB); - final Graphics2D g = GraphicsUtil.createGraphics(image, ObjUtil.defaultIfNull(this.background, Color.WHITE)); + final BufferedImage image = new BufferedImage(width, height, (null == this.background) ? BufferedImage.TYPE_4BYTE_ABGR : BufferedImage.TYPE_INT_RGB); + final Graphics2D g = GraphicsUtil.createGraphics(image, this.background); try { // 画字符串