Java实现图片转Base64字符串和Base64字符串转图片的过程可以分为两部分进行:
第一部分:图片转Base64字符串。
- 使用Java中的File类或者ImageIO类读取图片文件,并将其转化为BufferedImage对象,如下代码:
File file = new File("test.png");
BufferedImage image = ImageIO.read(file);
- 使用ByteArrayOutputStream类输出流将BufferedImage对象转为字节数组,并使用Base64类的
getEncoder()
方法进行编码,生成Base64字符串,如下代码:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
byte[] bytes = baos.toByteArray();
String base64Str = Base64.getEncoder().encodeToString(bytes);
System.out.println(base64Str);
第二部分:Base64字符串转图片。
- 使用Base64类的
getDecoder()
方法将Base64字符串解码成字节数组,如下代码:
String base64Str = "iVBORw0KGgoAAAANSUhEUgAAAAUA\n..."
byte[] bytes = Base64.getDecoder().decode(base64Str);
- 使用ByteArrayInputStream类输入流将字节数组转为BufferedImage对象,如下代码:
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
BufferedImage image = ImageIO.read(bais);
- 使用ImageIO类将BufferedImage对象保存为目标格式的图片文件,如下代码:
File outputFile = new File("test2.png");
ImageIO.write(image, "png", outputFile);
示例说明:
示例1:将一张png格式的图片转为Base64字符串,并输出该字符串。
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Base64;
import javax.imageio.ImageIO;
public class ImageToBase64 {
public static void main(String[] args) throws IOException {
// 读取图片文件
File file = new File("test.png");
BufferedImage image = ImageIO.read(file);
// 转换为字节数组并编码生成Base64字符串
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
byte[] bytes = baos.toByteArray();
String base64Str = Base64.getEncoder().encodeToString(bytes);
// 输出Base64字符串
System.out.println(base64Str);
}
}
示例2:将一个png格式的Base64字符串转为图片文件,保存到本地。
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.util.Base64;
import javax.imageio.ImageIO;
public class Base64ToImage {
public static void main(String[] args) throws IOException {
// 解码Base64字符串为字节数组
String base64Str = "iVBORw0KGgoAAAANSUhEUgAAAAUA\n...";
byte[] bytes = Base64.getDecoder().decode(base64Str);
// 转为BufferedImage对象
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
BufferedImage image = ImageIO.read(bais);
// 保存为图片文件
File outputFile = new File("test2.png");
ImageIO.write(image, "png", outputFile);
}
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java实现图片转base64字符串 java实现base64字符串转图片 - Python技术站