关于base64字符串转换成图片。
前段时间在项目中用到了上传头像,并且获取剪切后的头像功能,单一的上传头像很好处理,直接把改文件上传就可以,但是剪切后的头像,它的src却是一个base64字符串,如图:
,直接将这个地址当做文件路径上传到后台肯定不行,因为java无法编译改地址,不能识别为一个图片路径。那么, 这就用到了对base64位字符串进行解码处理, 将其解析为一个可被正确识别的文件。
/** * <p> * 1.base64字符串转化成图片(对字节数组字符串进行Base64解码并生成图片) * </p> * <p> * 2.首先要检查是否存在data:image/png;base64,(类似content-type),如果有的话, 去掉。 * </p> * <p> * 3.通过BASE64Decoder 接口进行解码 (BASE64Decoder位于%JAVA_HOME%\jdk1.7.0_45\jre\lib\rt.jar中) * </p> * <p> * 4.最后通过FileOutputStream 文件流生成文件 * </p> * * @param base64Str * @param userName * @param filePath * @author zhangyd-c * @date 2015年5月29日 下午2:49:22 * @return String */ public static String generateImage(String base64Str, String userName,String filePath) { // 去掉前面的data:image/png;base64, if (base64Str.indexOf("data:image/png;base64,") != -1) { base64Str = base64Str.replace("data:image/png;base64,", ""); } BASE64Decoder decoder = new BASE64Decoder(); // 生成jpeg图片 FileOutputStream out = null; try { // Base64解码 byte[] b = decoder.decodeBuffer(base64Str); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {// 调整异常数据 b[i] += 256; } } if (EmptyUtil.isNullStr(filePath)) { String newFileName = userName + CommonUtil.getDateString(new Date(), "yyyyMMhhHHmmss") + ".jpg";// 生成的新的文件名 filePath = getFilePath() + newFileName; } out = new FileOutputStream(filePath); out.write(b); out.flush(); } catch (Exception e) { return null; } finally { if (null != out) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } return filePath; }
相关推荐
1. 将普通字符串转换为Base64字符串 在C#中,我们可以使用`System.Convert`类的`ToBase64String`方法将普通字符串(UTF-8编码的字节数组)转换为Base64字符串。首先,我们需要将字符串转换为字节数组,然后进行编码...
总结来说,要在Thymeleaf中显示Base64字符串为图片,关键在于后台将图片字节数组转成Base64字符串并添加MIME类型标识,然后通过ModelAndView传递给前端;在前端,使用Thymeleaf表达式将字符串插入到`<img>`标签的`...
在描述的场景中,我们有两个关键操作:将图片转换为Base64字符串,并将Base64字符串还原为图片。 1. **图片转Base64字符串**: 在这个过程中,图片文件(通常为.jpg, .png, .gif等形式)被读取并转化为字节流。...
1. **解码字符串**:使用`DecodeString`方法将Base64编码的字符串转换回原始的二进制数据。 2. **创建内存流**:创建一个`TMemoryStream`对象,用于存储解码后的二进制数据。 3. **写入数据**:将解码得到的二进制...
在这个场景中,我们关注的是如何将二进制图片文件转换为Base64字符串文本,以及如何将这个Base64字符串再还原回图片。这在数据传输、存储或者网页显示等方面非常有用,因为Base64编码可以将二进制数据转换为ASCII...
如果需要从Base64字符串恢复图片,可以使用类似的方法,先使用Convert.FromBase64String将字符串转换回字节数组,然后写入到新的文件中。 在实际应用中,这样的功能可能用于在数据库中存储图片数据,或者在网络请求...
例如,`TestImageBinary.java`可能会有一个方法,接受图片路径作为输入,读取图片,将其转换为Base64字符串,然后再反向操作,将Base64字符串转换回图片。 `20090709442.jpg`文件很可能是用来测试上述代码的图片。...
二维码图片转换成BASE64字符串是一项常见的数据处理任务,在IT领域中有着广泛的应用。二维码(Quick Response Code)是一种二维条形码,可以存储大量的文本、网址、名片等信息,而BASE64则是一种用于将二进制数据...
如果是源代码文件,那么它可能包含了实现图片与Base64加密码字符串转换的核心逻辑。 综合以上分析,该工具涉及的技术点包括: 1. 图像处理:读取、显示和保存图片文件,可能使用了如OpenCV、PIL等库。 2. Base64...
在Vue项目中,将Base64字符串转换为图片是一种常见的需求,这通常涉及到前端与后端的数据交互。本文将详细讲解如何实现这一功能,并提供相关的Vue代码示例以及后端处理Base64字符串的方法。 首先,让我们从Vue组件...
本话题聚焦于如何在C++中将图片转换为base64字符串,以适应网络传输的需求。 Base64编码是一种将任意二进制数据转换为ASCII字符集的表示方法,它将3个字节的数据转换成4个可打印的ASCII字符。这样转换后的字符串...
在Java编程中,将网络上的图片读取并转换为Base64字符串是一项常见的任务,尤其在Web开发中,这样的操作可以用于数据传输或者存储。Base64是一种编码方式,能够将二进制数据转化为可打印的ASCII字符,方便在网络上...
Java 实现图片转 Base64 字符串和 Base64 字符串转图片是 Java programming 中两个常用的功能,分别用于将图片转换为 Base64 编码的字符串和将 Base64 编码的字符串转换回图片。下面我们将详细介绍这两个功能的实现...
在VB中,我们可以利用内置的函数和方法来实现二进制图片文件向Base64字符串的转换,这个过程对于在网络上传输图像或者存储在数据库中非常有用。 首先,我们需要理解Base64编码的工作原理。Base64使用64个可打印字符...
将图片转成Base64字符串。供前端Html <img/> 使用 将转换结果替换至src的值就OK了
Base64的转换工具,用于普通字符串或者图片转换为Base64或者将base64字符串转换为普通字符串或图片。
标题中的“图片 Base64 格式 字符串转换”涉及到的是计算机编程中的一种常见技术,主要用于在网络上传输图像数据。在Web开发中,有时为了简化HTTP请求或避免跨域问题,我们会选择将图片编码为Base64字符串,然后直接...
在PHP开发中,有时我们需要处理各种数据类型,其中包括将基于Base64编码的字符串转换成实际的图片文件。Base64是一种用64个字符来表示任意二进制数据的方法,通常用于在网络上传输图像或者在HTML中嵌入图像。在本...
在Java开发中,生成二维码和将二维码转换为Base64字符串是常见的需求,尤其是在与前端交互时。这个项目提供了一种方便的方式,通过Maven依赖来实现这些功能,并且包括了一个工具类,使得操作更加简单易用。接下来,...
这些文件与图片转换成Base64字符串的过程无关,但它们可能是一个Delphi应用程序,该程序实现了上述Base64编码功能。 总之,Base64编码是将二进制数据转化为ASCII字符串的一种方法,特别适用于在网络传输和存储时...