Base64编码和图片转化
package com.example;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.util.Base64;
public class ImageBase64Tool {
public static void main(String[] args) {
String suffix = "jpg";
System.out.println("#######################sun.misc.BASE64Decoder#######################");
String imageFileName = "\\D:\\image\\test\\bg.jpg";
String imageBinary = ImageBase64Tool.getImageBinary(imageFileName, suffix);
System.out.println(imageBinary);
String newFileName = "\\D:\\image\\test\\bg34.jpg";
ImageBase64Tool.base64StringToImage(imageBinary, newFileName, suffix);
System.out.println("###############################java Base64.Encoder###########################");
String imageFileName1 = "\\D:\\image\\test\\404.jpeg";
String imageBinary1 = ImageBase64Tool.generateBase64(imageFileName1);
System.out.println(imageBinary1);
String newFileName1 = "\\D:\\image\\test\\403.jpeg";
ImageBase64Tool.base64StringToImage1(imageBinary1, newFileName1, suffix);
}
public static String getImageBinary(String imageFileName, String suffix) {
BASE64Encoder encoder = new BASE64Encoder();
File imageFile = new File(imageFileName);
try {
BufferedImage bufferedImage = ImageIO.read(imageFile);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, suffix, baos);
byte[] bytes = baos.toByteArray();
String binaryString = encoder.encodeBuffer(bytes).trim();
baos.close();
return binaryString;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static void base64StringToImage(String base64String, String newImageFilePath, String suffix) {
try {
BASE64Decoder decoder = new BASE64Decoder();
byte[] bytes = decoder.decodeBuffer(base64String);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
BufferedImage bufferedImage = ImageIO.read(byteArrayInputStream);
File imageFile = new File(newImageFilePath);
ImageIO.write(bufferedImage, suffix, imageFile);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String generateBase64(String imageFileName) {
Base64.Encoder utilEncoder = Base64.getEncoder();
byte[] imageBytes = null;
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(imageFileName);
try {
imageBytes = new byte[fileInputStream.available()];
fileInputStream.read(imageBytes);
return utilEncoder.encodeToString(imageBytes);
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally {
if (null != fileInputStream){
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
public static void base64StringToImage1(String base64String, String imageFileName, String suffix) {
try {
Base64.Decoder utilDecoder = Base64.getDecoder();
byte[] bytes = utilDecoder.decode(base64String);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
BufferedImage bufferedImage = ImageIO.read(byteArrayInputStream);
File imageFile = new File(imageFileName);
ImageIO.write(bufferedImage, suffix, imageFile);
} catch (IOException e) {
e.printStackTrace();
}
}
}