diff --git a/CHANGELOG.md b/CHANGELOG.md
index fe240bded..abfd25449 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,9 +3,11 @@
-------------------------------------------------------------------------------------------------------------
-## 5.3.11 (2020-07-23)
+## 5.3.11 (2020-07-25)
### 新特性
+* 【captcha】 AbstractCaptcha增加getImageBase64Data方法(pr#985@Github)
+
### Bug修复
-------------------------------------------------------------------------------------------------------------
diff --git a/hutool-captcha/src/main/java/cn/hutool/captcha/AbstractCaptcha.java b/hutool-captcha/src/main/java/cn/hutool/captcha/AbstractCaptcha.java
index 321f34c57..c4bc2941e 100644
--- a/hutool-captcha/src/main/java/cn/hutool/captcha/AbstractCaptcha.java
+++ b/hutool-captcha/src/main/java/cn/hutool/captcha/AbstractCaptcha.java
@@ -7,6 +7,7 @@ import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.util.URLUtil;
import java.awt.AlphaComposite;
import java.awt.Color;
@@ -198,9 +199,10 @@ public abstract class AbstractCaptcha implements ICaptcha {
* 获取图片带文件格式的 Base64
*
* @return 图片带文件格式的 Base64
+ * @since 5.3.11
*/
- public String getImageBase64Full(){
- return "data:image/png;base64," + Base64.encode(getImageBytes());
+ public String getImageBase64Data(){
+ return URLUtil.getDataUriBase64("image/png", getImageBase64());
}
/**
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/URLUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/URLUtil.java
index fa53d14e2..78e7a8d94 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/URLUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/URLUtil.java
@@ -772,6 +772,25 @@ public class URLUtil {
}
}
+ /**
+ * Data URI Scheme封装,数据格式为Base64。data URI scheme 允许我们使用内联(inline-code)的方式在网页中包含数据,
+ * 目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。常用于将图片嵌入网页。
+ *
+ *
+ * Data URI的格式规范: + *
+ * data:[<mime type>][;charset=<charset>][;<encoding>],<encoded data> + *+ * + * @param mimeType 可选项(null表示无),数据类型(image/png、text/plain等) + * @param data 编码后的数据 + * @return Data URI字符串 + * @since 5.3.11 + */ + public static String getDataUriBase64(String mimeType, String data) { + return getDataUri(mimeType, null, "BASE64", data); + } + /** * Data URI Scheme封装。data URI scheme 允许我们使用内联(inline-code)的方式在网页中包含数据,