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

编程教程 > Java (3208) 2025-01-27 08:42:08

1.依赖包,maven引入

        <!--Base64Encoder等工具类 -->
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.10</version>
		</dependency>
		<!--/Base64Encoder等工具类 -->

2.Java编程代码:

package com.xqlee.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 xqlee
 *
 */
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," 
解码之前去掉,否则错误。

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
Java编程中处理图片文件与base64串的图片相互转化工具类,方便在编程中处理前端传递过来的base64图片。
Base64编码和解码_java8编程Base64编码和解码API使用
Java编程中,很多报表系统需要导出Excel文件,并且某些时候需要导出一定的图形统计,其实就是将图片放在Excel中,下面讲解Java如何实现Excel图片编辑插入
Map与Java bean之间的转换工具类,用于java.util.Map与普通javabean直接的相互转换,Java编程
Base64 编码/解码在线工具
Java编程float转换为String并保留n位小数
微软ico应用图标规范ico格式图片应该包含常见4尺寸16x16 32x32 48x48 256x256 其他完整尺寸规范信息参考表dpi图标大小比例因子96
java 图片 无损压缩。随着科技进步,大家手机拍的照片也从之前的几百KB变成几MB或者10MB了,有些情况我们需要压缩一下图片节省网络资源。这里将会讲解如何采用Java语音进行图片的无损压缩
最近在学习JavaFX,发现资料很少,连基本的图片读取都很多错误版本
功能说明:1.指定图片大小缩放图片(reSize);2.指定图片的宽度,高度根据比例缩放(reSizeByWith);3.指定图片的高度,宽度根据比例缩放(reSizeByHeight);4.判...
Java编程之Spring Cloud Hystrix Circuit熔断/断路
Java编程软件有哪些?常用Java编程软件下载、安装和使用说明
Java编程之spring boot FastDFS Java client使用,Java编程,FastDFS Java客户端
简介本文如题将会讲解如何将图片简单的方式转换为PDF文件,以及如何将多张图片转换成一个PDF文件的方法讲解
Java编程之java static关键字,Java编程,static关键字