`

apache base64文件转换

    博客分类:
  • java
 
阅读更多
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引入包

    Base64是一种在网络上传输和存储二进制数据时常用的数据编码方式,它将二进制数据转换为可打印的ASCII字符序列。在Java中,Base64编码主要用于处理包含二进制数据的字符串,例如图片、PDF文档或加密密钥等。Base64...

    jdk1.6解决base64

    Base64是一种基于64个可打印字符来表示二进制数据的方法,常用于将二进制数据转换为文本格式的数据,以便在网络上传输。在不同的Java版本中,Base64的实现方式有所不同。本篇文章主要针对JDK 1.6环境下Sun提供的Base...

    base64 三个jar包

    例如,使用Apache Commons Codec库时,你可以通过`org.apache.commons.codec.binary.Base64`类的静态方法`encodeBase64()`和`decodeBase64()`进行Base64的转换。 在实际开发中,选择哪个jar包主要取决于你的项目...

    apache-commons-codec-1.4.jar和sun.misc.BASE64Encoder.jar

    在给定的压缩包文件中,`apache-commons-codec-1.4.jar`是这个库的一个版本,它包含了对BASE64以及其他编码格式的支持。 BASE64是一种用于将二进制数据转换为ASCII文本的编码方式,以便在不支持二进制传输的环境中...

    base64包,decodeBase64包,encodeBase64String包

    在Java中,处理Base64编码和解码的库通常包含在特定的包中,比如Apache Commons Codec库。这个库提供了方便的API来执行Base64的编码和解码操作。 Apache Commons Codec是Apache软件基金会的一个开源项目,提供了一...

    JAVA将图片转换为Base64编码

    在上面的代码中,我们首先读取图片文件,将其转换为字节数组,然后使用Base64.encodeBase64()方法将字节数组转换为Base64编码字符串。 将Base64编码字符串解码成图片 下面是将Base64编码字符串解码成图片的示例...

    如何解决JDK1.6下的Base64

    在Java开发中,Base64是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符,常用于在网络上传输或存储非文本数据,如图像、密钥等。然而,在JDK 1.6及更早版本中,Java标准库(rt.jar)并未内置对...

    PDF格式文件转成base64编码,将base64的编码转成PDF格式文件。

    BASE64Encoder和BASE64Decoder这两个方法是sun公司的内部方法,并没有在java,api中公开过,所以使用这些方法是不安全的,将来随时可能会从中去除,所以相应的应该使用替代的对象及方法,建议使用apache公司的API。

    Java 从网络中读取图片 转换成Base64字符串

    Base64是一种编码方式,能够将二进制数据转化为可打印的ASCII字符,方便在网络上传输。 首先,我们需要了解Java中的网络I/O操作。在Java中,`java.net.URL`类是用于表示统一资源定位符的,它可以用来打开到网络资源...

    java base64源码+jar包

    Java中的Base64编码是一种将任意二进制数据转换为可打印ASCII字符的编码方式,广泛应用于网络传输、数据存储等领域。Base64编码的基本原理是将每3个字节(24位)的数据转化为4个6位的十六进制数字,然后用64个可打印...

    Java代码 可以压缩文件夹到指定目录和指定名称,将文件或者文件夹中的文件转成base64格式

    同时,将文件或文件夹中的文件转换为Base64编码是一种在内存中传输和存储二进制数据的有效方式,特别是在网络通信中。Base64是一种编码机制,它可以将任何二进制数据转换为ASCII字符串,确保数据在不支持二进制传输...

    Base64编码jar包

    Base64编码是一种在网络上传输二进制数据时常用的编码方式,主要目的是将不可打印的字符转换为可打印的ASCII字符,确保数据在通过电子邮件、HTML或XML等文本格式传输时不受损坏。在Java中,Base64编码常用于处理图片...

    BASE64的jar包

    在Java标准库中,虽然`java.util.Base64`类自Java 8开始被引入,但在一些旧版本的Java环境中,或者为了追求更小的项目体积和更高的性能,开发者可能会选择使用第三方库,如Apache Commons Codec或这个"BASE64的jar包...

    使用PHP将图片转化为base64数据流

    本实验主要使用GD库、函数的封装和调用实现图片和base64编码数据流的转化,通过本案例转换后得到的base64编码字符串,可以存放到数据库中,需要时可以直接从数据库中读取,减少访问图片时的请求数量。

    base64用到的jar包下载

    如果你需要在处理加密或安全相关的任务时进行Base64转换,Bouncy Castle可能是一个好选择。你需要下载`bcprov-jdk15on.jar`(或其他对应JDK版本的jar)并引入。Base64操作在`org.bouncycastle.util.encoders.Base64`...

    JDK1.6下的Base64解决方式.txt.zip

    在Java开发中,Base64是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符,常用于在网络上传输或存储非文本数据。然而,在JDK 1.6版本中,标准库并没有内置对Base64编码和解码的直接支持,这给...

    java Base64自定义码表

    在Java中,实现Base64编码和解码通常使用`java.util.Base64`类或Apache Commons Codec库中的`Base64`类。标准的Base64编码过程是将每3个字节的数据转换为4个6位的二进制数,然后将这些二进制数映射到编码表中的字符...

    图片流转存Base64编码然后转图片 Spring 框下的

    总的来说,Spring框架为我们提供了强大的工具来处理图片流与Base64编码之间的转换,使得图片的上传、存储和下载变得更加便捷。在实际开发中,根据具体需求,可能还需要考虑性能优化、错误处理、安全性等问题,比如...

    解决JDK1.6下的Base64报错问题

    在资源文件中的`解决JDK1.6下的Base64.jar`可能是包含了一个兼容JDK 1.6的Base64实现的第三方库,你可以直接将这个jar包添加到你的项目类路径中,这样就可以使用其中提供的Base64类而无需修改代码。添加方法通常包括...

    java图片Base64转换工具

    该工具提供了多种方法来实现图片和 Base64 之间的转换,包括将图片文件转换为 Base64 字符串,将 Base64 字符串转换回图片文件等。 首先,让我们了解一下 Base64 编码。Base64 编码是一种编码方式,用于将二进制...

Global site tag (gtag.js) - Google Analytics