package test;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.imageio.ImageIO;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Test {
public static void main(String args[])throws Exception{
//定义一个BASE64Encoder
BASE64Encoder encode = new BASE64Encoder();
//将byte[]转换为base64
String base64 = encode.encode("五笔字型电子计算机".getBytes());
//输出base64
System.out.println(base64);
//新建一个BASE64Decoder
BASE64Decoder decode = new BASE64Decoder();
//将base64转换为byte[]
byte[] b = decode.decodeBuffer(base64);
//输出转换后的byte[]
System.out.println(new String(b));
System.out.println("=======================图片转换为BASE64编码=======================");
//System.out.println(getImageBinary());
getImage("D:\\image","dongxh.jpg",getImageBinary(false));
}
//将图片转化为BASE64编码
public static String getImageBinary(boolean bl){
BASE64Encoder encoder = new sun.misc.BASE64Encoder();
File f = new File("d://55bfd32bb9f1ec4c369bf725.jpg");
BufferedImage bi;
try {
bi = ImageIO.read(f);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bi, "jpg", baos);
byte[] bytes = baos.toByteArray();
//是否格式化BASE64编码
if(bl){
//得到图片的base64编码
String ImageBinary = encoder.encodeBuffer(bytes).trim();
//去掉得到的base64编码的换行符号
Pattern p = Pattern.compile("\\s*|\t|\r|\n");
Matcher m = p.matcher(ImageBinary);
return m.replaceAll("");
}else{
return encoder.encodeBuffer(bytes).trim();
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
//将BASE64编码转换为图片
public static void getImage(String savePath,String imageName,String imageBASE64)throws Exception{
BASE64Decoder decoder=new BASE64Decoder();
byte[] bytes=decoder.decodeBuffer(imageBASE64);
File file=new File(savePath+File.separator+imageName);
FileOutputStream fos=new FileOutputStream(file);
fos.write(bytes);
fos.flush();
fos.close();
}
}
图片和BASE64 转换
最新推荐文章于 2022-05-13 20:19:58 发布