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)的方式在网页中包含数据,
* 目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。常用于将图片嵌入网页。