Java编程中base64图片与文件图片的相互转化工具

教程分享 > Java教程 > 博文分享 (4819) 2024-04-17 12:33:25
1.依赖包,maven引入
        <!--Base64Encoder等工具类 -->
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.10</version>
		</dependency>
		<!--/Base64Encoder等工具类 -->
2.Java编程代码:
package com.leftso.common;

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.imageio.ImageIO;

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

/**
 * 图片与base64编码的互转工具
 * 
 * @author leftso
 *
 */
public class ImageBase64Util {

	public static void main(String[] args) {
		try {
			File image = new File("C:\\Users\\fghfghdf\\Desktop\\temp\\2.png");
			String imageStr = image2Base64(new FileInputStream(image));
			System.out.println(imageStr);
			File out = new File("C:\\Users\\fghfghdf\\Desktop\\temp\\3.png");
			base642Image(imageStr, new FileOutputStream(out));
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	/**
	 * 图片文件转换为base64编码的串
	 * 
	 * @param imageFileInputStream
	 *            图片文件输入流
	 * @return 编码后的base64串
	 * @throws IOException
	 *             可能出现IO异常
	 */
	public static String image2Base64(InputStream imageFileInputStream) throws IOException {
		byte[] data = new byte[imageFileInputStream.available()];
		imageFileInputStream.read(data);
		imageFileInputStream.close();
		Base64 base64 = new Base64();
		return base64.encodeAsString(data);
	}

	/**
	 * base64串转换为图片文件
	 * 
	 * @param base64Image
	 *            图片base64串
	 * @param outputStream
	 *            输出流
	 * @throws IOException
	 *             可能出现IO异常
	 */
	public static void base642Image(String base64Image, OutputStream outputStream) throws IOException {
		Base64 base64 = new Base64();
		// 解码
		byte[] imageArr = base64.decode(base64Image);
		InputStream sbs = new ByteArrayInputStream(imageArr);
		BufferedImage bufferImg = ImageIO.read(sbs);
		ImageIO.write(bufferImg, "PNG", outputStream);
	}

}

注意
前端传递过来的图片,一般会有一个前缀,如下
"data:image/jpeg;base64," 
解码之前去掉,否则错误。

 

相关文章
Java编程中处理图片文件与base64串的图片相互转化工具类,方便在编程中处理前端传递过来的base64图片。
Base64编码和解码_java8编程Base64编码和解码API使用
bmp图片如何转换为jpg格式图片使用windows的图片工具小左图工支持bmp转换为jpg格式图片,且支持批量将bmp格式图片转换为jpg图片
当今的数字时代,图片已成为我们生活中不可或缺的一部分。无论是在工作中还是在日常生活中,我们都需要用到图片。但是,不同的应用程序和设备支持的图片格式不同,这就需要我们使用一个图片格式转换工具来解决...
Map与Java bean之间的转换工具类,用于java.util.Map与普通javabean直接的相互转换,Java编程
Java编程中,很多报表系统需要导出Excel文件,并且某些时候需要导出一定的图形统计,其实就是将图片放在Excel中,下面讲解Java如何实现Excel图片编辑插入
ico图片格式转换,ico图片一般用于那些地方呢?就Windows系统而言,ico大量用于软件的图标
Java编程float转换为String并保留n位小数
图片格式转换的需求在日常生活中是常见的,目前很多网站上传资料需要JPG格式
最近有朋友问我小左图工支持tif格式图片转换吗,她那边工作需要,会用到tif转为jpg格式的需求,后面我就进行技术调研
最近在学习JavaFX,发现资料很少,连基本的图片读取都很多错误版本
java 图片 无损压缩。随着科技进步,大家手机拍的照片也从之前的几百KB变成几MB或者10MB了,有些情况我们需要压缩一下图片节省网络资源。这里将会讲解如何采用Java语音进行图片的无损压缩
Java编程之Spring Cloud Hystrix Circuit熔断/断路
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端