`
weiwei5910
  • 浏览: 27605 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类

JAVA将图片转为BASE64编码及反转方法

 
阅读更多
在项目中,需要将BASE64编码的图片转换为图片文件显示在WEB项目中,经GOOGLE一番搜索,自己写了个互换的工具类
package com.base.util;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
 * 图片与BASE64编码互转工具类
 * @author wangwei
 *
 */
public class ImageBase64Util {
    
    public static void main(String[] args) {
        // 测试从Base64编码转换为图片文件
//        String strImg = "xxxxx"; \\图片BASE64字符串
//        GenerateImage(strImg, "D:\\wangyc.jpg");
        // 测试从图片文件转换为Base64编码
        //System.out.println(GetImageStr("d:\\0.jpg"));
        
        GenerateImage(GetImageStr("d:\\0.jpg"), "D:\\000.jpg");
    }
    
    /**
     * 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
     * @param imgFilePath 图片路径
     * @return String
     */
    public static String GetImageStr(String imgFilePath) {
        byte[] data = null;
        // 读取图片字节数组
        try {
            InputStream in = new FileInputStream(imgFilePath);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 对字节数组Base64编码
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);// 返回Base64编码过的字节数组字符串
    }
    /**
     * 对字节数组字符串进行Base64解码并生成图片
     * @param imgStr Base64字符串
     * @param imgFilePath 生成图片保存路径 
     * @return boolean
     */
    public static boolean GenerateImage(String imgStr, String imgFilePath) {
        if (imgStr == null) // 图像数据为空
            return false;
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            // Base64解码
            byte[] bytes = decoder.decodeBuffer(imgStr);
            for (int i = 0; i < bytes.length; ++i) {
                if (bytes[i] < 0) {// 调整异常数据
                    bytes[i] += 256;
                }
            }
            // 生成jpeg图片
            OutputStream out = new FileOutputStream(imgFilePath);
            out.write(bytes);
            out.flush();
            out.close();
            return true;
        } catch (Exception e) {
            return false;
        }
    }
    
    /**
     * 对字节数组字符串进行Base64解码并生成图片
     * @param imgStr 图片字符串
     * @return byte[]
     */
    public static byte[] getStrToBytes(String imgStr) { 
        if (imgStr == null) // 图像数据为空
            return null;
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            // Base64解码
            byte[] bytes = decoder.decodeBuffer(imgStr);
            for (int i = 0; i < bytes.length; ++i) {
                if (bytes[i] < 0) {// 调整异常数据
                    bytes[i] += 256;
                }
            }
            // 生成jpeg图片
            return bytes;
        } catch (Exception e) {
            return null;
        }
    }
} 

分享到:
评论

相关推荐

    JAVA将图片转换为Base64编码

    JAVA将图片转换为Base64编码 在本文中,我们将讨论如何使用Java将图片转换为Base64编码。Base64编码是一种常用的数据编码方式,广泛应用于网络传输、数据存储等领域。下面我们将详细介绍如何使用Java实现图片到Base...

    Java实现图片和Base64之间的相互转化

    在Java编程中,将图片与Base64编码进行相互转换是一项常见的任务,特别是在网络传输、存储和显示图像数据时。Base64是一种用于将任意二进制数据转换为可打印ASCII字符的编码方式,这对于在HTTP协议下传输二进制数据...

    java和js相互base64编码解码

    在IT行业中,Base64是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符,常用于在网络上传输包含非ASCII字符的数据,如图片或PDF等。在Java和JavaScript中,Base64编码和解码是两个重要的功能,...

    labview 图片缩放 base64编码base64解码

    在这个特定的场景中,我们关注的是如何在LabVIEW中处理图片,包括图片的缩放、Base64编码和解码。 1. **图片缩放**: 在LabVIEW中,你可以使用图像处理库来实现图片的缩放功能。这个库提供了各种图像操作函数,...

    将图片进行Base64编码后传输

    "将图片进行Base64编码后传输"是一种高效且便捷的方式,它允许我们直接将图片数据嵌入到文本格式中,方便在网络中传递。这种技术广泛应用于JSON API、HTML页面以及任何不支持二进制数据流的系统。 Base64是一种编码...

    java将图片转成Base64编码

    在给定的压缩包文件中,`java将图片转成Base64编码.htm`可能是包含上述示例代码的一个网页,而`java将图片转成Base64编码_files`可能是该网页的资源文件夹,可能包含了测试用的图片文件。 总之,Java中的Base64编码...

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

    在Java编程中,将网络上的图片读取并转换为Base64字符串是一项常见的任务,尤其在Web开发中,这样的操作可以用于数据传输或者存储。Base64是一种编码方式,能够将二进制数据转化为可打印的ASCII字符,方便在网络上...

    Android图片的Base64编码与解码及解码Base64图片方法

    在Android开发中,有时我们需要将图片转换为Base64编码的形式以便在网络传输或者存储时使用。Base64编码是一种常见的二进制数据转化为文本的方法,它通过使用64个可打印字符来表示原本的二进制数据,使得数据可以在...

    java 把PDF转换成BASE64

    2. **转换为BASE64**:Java 8及以上版本提供了`java.util.Base64`工具类,可以方便地进行BASE64编码。 ```java String base64String = Base64.getEncoder().encodeToString(pdfBytes); ``` 至此,PDF文件已经被转换...

    图片转base64保存到数据库 , 并回显到浏览器

    在IT行业中,将图片转换为Base64编码并存储到数据库是一种常见的做法,尤其是在Web开发中。这种方法可以避免处理图片的上传、存储和路径管理问题,简化系统架构。以下是关于这个主题的详细知识: 1. **Base64编码**...

    Java基于Base64实现编码解码图片文件

    在encodeImgageToBase64(URL imageUrl)方法中,首先使用ImageIO.read(imageUrl)读取图片文件,然后使用ByteArrayOutputStream将图片文件转化为字节数组字符串,并对其进行Base64编码处理。最后,返回Base64编码...

    java 图片base64 加密解密

    在Java编程中,图片Base64加密解密是一种常见的数据处理技术,特别是在网络传输和存储时,由于Base64编码可以将二进制数据转换为可打印的ASCII字符,因此非常适用。`sun.misc.BASE64Encoder`和`sun.misc.BASE64...

    Java Base64编码和解码

    在Java 8及更高版本中,Java引入了`java.util.Base64`类,提供了方便的Base64编码和解码API。以下是一些关键的方法: 1. `encodeBytes(byte[] input)`:将字节数组进行Base64编码,返回一个包含编码结果的字符串。 ...

    Java实现的Base64编码程序

    在Java中实现Base64编码,我们可以使用内置的`java.util.Base64`类,这个类提供了方便的方法来进行Base64的编码和解码。 Base64编码的原理是将每3个字节(24位)的数据分为4组,每组6位。由于ASCII码是7位的,因此6...

    Base64编码与图片互转

    Base64编码与图片互转

    适用于批量将任意文件转为base64编码的工具.zip

    在IT领域,Base64是一种常见的数据编码方法,它用于将二进制数据转换成ASCII字符串,以便在电子邮件系统或类似限制非ASCII字符的环境中传输。这个“适用于批量将任意文件转为base64编码的工具”正是针对这一需求而...

    java将图片转为base64返回给前端

    Java 将图片转换为 Base64 返回给前端是指在 Java 服务器端将图片转换为 Base64 编码字符串,并将其返回给前端,以便在前端进行显示或处理。本文将详细介绍 Java 将图片转换为 Base64 返回给前端的实现过程,并提供...

    java-Base64编码

    4. **Base64解码过程**: 相反地,`java.util.Base64.Decoder`的`decode()`方法可以将Base64编码的字符串还原为原始的字节数组。在解码过程中,系统会自动处理末尾的等于号,以适应不同长度的输入。 5. **`javabase...

    用java实现base64编码和解码

    实现base64编码和解码。实现下面的类中的两个功能。 public class Base64 { /** 实现解码功能 */ public static byte[] decode(byte[] dest) { } /** 实现编码功能 */ public static byte[] encode(byte[] ...

    QT图片BAse64编码与解码

    2. 使用QByteArray的toBase64()方法编码图片数据为Base64字符串。 3. 可能将Base64字符串保存到文件或在网络上传输。 4. 对接收到的Base64字符串,通过QByteArray的fromBase64()方法解码。 5. 将解码后的字节序列写...

Global site tag (gtag.js) - Google Analytics