下面是详细讲解“Java 处理图片与base64 编码的相互转换的示例”的完整攻略:
1. 处理图片转base64编码
1.1 第一步,读取图片文件
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.codec.binary.Base64;
public class ImgToBase64 {
public static String getImageStr(String imgFilePath) {
InputStream inputStream = null;
byte[] buffer = null;
try {
File imgFile = new File(imgFilePath);
inputStream = new FileInputStream(imgFile);
buffer = new byte[inputStream.available()];
inputStream.read(buffer);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Base64.encodeBase64String(buffer);
}
}
1.2 第二步,调用getImageStr方法
public class ImgToBase64Test {
public static void main(String[] args) {
String imgFilePath = "test.jpg";
String imgBase64Str = ImgToBase64.getImageStr(imgFilePath);
System.out.println(imgBase64Str);
}
}
2. 处理base64编码转图片
2.1 第一步,解码base64编码
import java.util.Base64;
import java.io.IOException;
import java.io.InputStream;
public class Base64ToImg {
public static byte[] decodeBase64(String base64) {
return Base64.getDecoder().decode(base64);
}
}
2.2 第二步,写入图片文件
import java.io.FileOutputStream;
import java.io.IOException;
public class Base64ToImg {
public static void generateImage(String imgFilePath, String imgBase64Str) {
byte[] buffer = Base64ToImg.decodeBase64(imgBase64Str);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(imgFilePath);
fos.write(buffer);
fos.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
2.3 第三步,调用generateImage方法
public class Base64ToImgTest {
public static void main(String[] args) {
String imgFilePath = "test.jpg";
String imgBase64Str = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD";
Base64ToImg.generateImage(imgFilePath, imgBase64Str);
}
}
这两个示例中,分别展示了如何将图片转换成base64编码以及如何将base64编码转换回图片。第一个示例中,通过读取图片文件并使用Apache Commons Codec将其转换为base64编码字符串。第二个示例中,首先使用Java的Base64类解码base64编码字符串,然后将解码后的二进制数据写入文件系统中。这些示例可以帮助您快速了解如何在Java中处理图像和base64编码之间的转换。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 处理图片与base64 编码的相互转换的示例 - Python技术站