package com.fengyunhe.helper.image; import java.io.*; /** * 图片base64互转 * Created by yangyan on 2015/8/11. */ public class ImageBase64Utils { public static String bytesToBase64(byte[] bytes) { return org.apache.commons.codec.binary.Base64.encodeBase64String(bytes);// 返回Base64编码过的字节数组字符串 } /** * 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 * * @param path 图片路径 * @return base64字符串 */ public static String imageToBase64(String path) throws IOException {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 byte[] data = null; // 读取图片字节数组 InputStream in = null; try { in = new FileInputStream(path); data = new byte[in.available()]; in.read(data); } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } return org.apache.commons.codec.binary.Base64.encodeBase64String(data);// 返回Base64编码过的字节数组字符串 } /** * 处理Base64解码并写图片到指定位置 * * @param base64 图片Base64数据 * @param path 图片保存路径 * @return */ public static boolean base64ToImageFile(String base64, String path) throws IOException {// 对字节数组字符串进行Base64解码并生成图片 // 生成jpeg图片 try { OutputStream out = new FileOutputStream(path); return base64ToImageOutput(base64, out); } catch (FileNotFoundException e) { e.printStackTrace(); } return false; } /** * 处理Base64解码并输出流 * * @param base64 * @param out * @return */ public static boolean base64ToImageOutput(String base64, OutputStream out) throws IOException { if (base64 == null) { // 图像数据为空 return false; } try { // Base64解码 byte[] bytes = org.apache.commons.codec.binary.Base64.decodeBase64(base64); for (int i = 0; i < bytes.length; ++i) { if (bytes[i] < 0) {// 调整异常数据 bytes[i] += 256; } } // 生成jpeg图片 out.write(bytes); out.flush(); return true; } finally { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } }
InputStream bytesInput = HttpClientHelper.INSTANCE.get("http://ww4.sinaimg.cn/bmiddle/66640ec4jw1euxo80dk39j20c80c83z6.jpg", null, null).getEntity().getContent(); byte[] bytes = IOUtils.toByteArray(bytesInput); String s = ImageBase64Utils.bytesToBase64(bytes); ImageBase64Utils.base64ToImageFile(s, "d:\\avatar\\test.jpg");
相关推荐
Base64是一种在网络上传输和存储二进制数据时常用的数据编码方式,它将二进制数据转换为可打印的ASCII字符序列。在Java中,Base64编码主要用于处理包含二进制数据的字符串,例如图片、PDF文档或加密密钥等。Base64...
Base64是一种基于64个可打印字符来表示二进制数据的方法,常用于将二进制数据转换为文本格式的数据,以便在网络上传输。在不同的Java版本中,Base64的实现方式有所不同。本篇文章主要针对JDK 1.6环境下Sun提供的Base...
例如,使用Apache Commons Codec库时,你可以通过`org.apache.commons.codec.binary.Base64`类的静态方法`encodeBase64()`和`decodeBase64()`进行Base64的转换。 在实际开发中,选择哪个jar包主要取决于你的项目...
在给定的压缩包文件中,`apache-commons-codec-1.4.jar`是这个库的一个版本,它包含了对BASE64以及其他编码格式的支持。 BASE64是一种用于将二进制数据转换为ASCII文本的编码方式,以便在不支持二进制传输的环境中...
在Java中,处理Base64编码和解码的库通常包含在特定的包中,比如Apache Commons Codec库。这个库提供了方便的API来执行Base64的编码和解码操作。 Apache Commons Codec是Apache软件基金会的一个开源项目,提供了一...
在上面的代码中,我们首先读取图片文件,将其转换为字节数组,然后使用Base64.encodeBase64()方法将字节数组转换为Base64编码字符串。 将Base64编码字符串解码成图片 下面是将Base64编码字符串解码成图片的示例...
在Java开发中,Base64是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符,常用于在网络上传输或存储非文本数据,如图像、密钥等。然而,在JDK 1.6及更早版本中,Java标准库(rt.jar)并未内置对...
BASE64Encoder和BASE64Decoder这两个方法是sun公司的内部方法,并没有在java,api中公开过,所以使用这些方法是不安全的,将来随时可能会从中去除,所以相应的应该使用替代的对象及方法,建议使用apache公司的API。
Base64是一种编码方式,能够将二进制数据转化为可打印的ASCII字符,方便在网络上传输。 首先,我们需要了解Java中的网络I/O操作。在Java中,`java.net.URL`类是用于表示统一资源定位符的,它可以用来打开到网络资源...
Java中的Base64编码是一种将任意二进制数据转换为可打印ASCII字符的编码方式,广泛应用于网络传输、数据存储等领域。Base64编码的基本原理是将每3个字节(24位)的数据转化为4个6位的十六进制数字,然后用64个可打印...
同时,将文件或文件夹中的文件转换为Base64编码是一种在内存中传输和存储二进制数据的有效方式,特别是在网络通信中。Base64是一种编码机制,它可以将任何二进制数据转换为ASCII字符串,确保数据在不支持二进制传输...
Base64编码是一种在网络上传输二进制数据时常用的编码方式,主要目的是将不可打印的字符转换为可打印的ASCII字符,确保数据在通过电子邮件、HTML或XML等文本格式传输时不受损坏。在Java中,Base64编码常用于处理图片...
在Java标准库中,虽然`java.util.Base64`类自Java 8开始被引入,但在一些旧版本的Java环境中,或者为了追求更小的项目体积和更高的性能,开发者可能会选择使用第三方库,如Apache Commons Codec或这个"BASE64的jar包...
本实验主要使用GD库、函数的封装和调用实现图片和base64编码数据流的转化,通过本案例转换后得到的base64编码字符串,可以存放到数据库中,需要时可以直接从数据库中读取,减少访问图片时的请求数量。
如果你需要在处理加密或安全相关的任务时进行Base64转换,Bouncy Castle可能是一个好选择。你需要下载`bcprov-jdk15on.jar`(或其他对应JDK版本的jar)并引入。Base64操作在`org.bouncycastle.util.encoders.Base64`...
在Java开发中,Base64是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符,常用于在网络上传输或存储非文本数据。然而,在JDK 1.6版本中,标准库并没有内置对Base64编码和解码的直接支持,这给...
在Java中,实现Base64编码和解码通常使用`java.util.Base64`类或Apache Commons Codec库中的`Base64`类。标准的Base64编码过程是将每3个字节的数据转换为4个6位的二进制数,然后将这些二进制数映射到编码表中的字符...
总的来说,Spring框架为我们提供了强大的工具来处理图片流与Base64编码之间的转换,使得图片的上传、存储和下载变得更加便捷。在实际开发中,根据具体需求,可能还需要考虑性能优化、错误处理、安全性等问题,比如...
在资源文件中的`解决JDK1.6下的Base64.jar`可能是包含了一个兼容JDK 1.6的Base64实现的第三方库,你可以直接将这个jar包添加到你的项目类路径中,这样就可以使用其中提供的Base64类而无需修改代码。添加方法通常包括...
该工具提供了多种方法来实现图片和 Base64 之间的转换,包括将图片文件转换为 Base64 字符串,将 Base64 字符串转换回图片文件等。 首先,让我们了解一下 Base64 编码。Base64 编码是一种编码方式,用于将二进制...