欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java图片Base64互转

程序员文章站 2024-02-05 20:43:34
...

这个工具依赖 commons-codec

<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.10</version>
</dependency>

互转工具代码:

import org.apache.commons.codec.binary.Base64;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;


public class ImageBase64Utils {

    public static String ImageToBase64(String imgPath,String imageType){
        InputStream imageInputStream = null;

        try {
            imageInputStream = new FileInputStream(imgPath);
            byte buff[] = new byte[imageInputStream.available()];
            imageInputStream.read(buff);
            String dataSuffiex = "data:image/"+imageType+";base64,";
            dataSuffiex += new Base64().encodeToString(buff);
            return dataSuffiex;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                imageInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    public static BufferedImage Base64ToImage(String baseEn){
        BufferedImage image = null;
        ByteArrayInputStream bis = null;
        byte imageByte[];

        try {
            imageByte = Base64.decodeBase64(baseEn);
            bis = new ByteArrayInputStream(imageByte);
            image = ImageIO.read(bis);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                bis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return image;
    }

}

转Base64测试:

public static void main(String[] args) {
        String imagePath = "C:\\Users\\Administrator\\Desktop\\123.jpg";
        String base64 = ImageBase64Utils.ImageToBase64(imagePath,"jpg");
        System.out.println(base64);
}

测试图片
Java图片Base64互转
转换后的Base64编码

data:image/jpg;base64,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

Base64还原图片

public static void main(String[] args) {
	String base64Str = "你的Base64编码";
	String data[] = base64Str.split(",");
	BufferedImage image = ImageBase64Utils.Base64ToImage(data[1]);
    try {
        ImageIO.write(image,"jpg",new File("C:\\sc.jpg"));
    } catch (IOException e) {
        e.printStackTrace();
    }

还换后的图片
Java图片Base64互转
在线工具测试
Java图片Base64互转

相关标签: Java base64