package com.kingschan.blog.util;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.imageio.ImageIO;
import org.apache.commons.codec.binary.Base64;
/**
*
* @author kingschan
*
*/
public class Base64ImgUtil {
/**
* 将网络图片进行Base64位编码
*
* @param imgUrl
* 图片的url路径,如http://.....xx.jpg
* @return
*/
public static String encodeImgageToBase64(URL imageUrl) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
ByteArrayOutputStream outputStream = null;
try {
BufferedImage bufferedImage = ImageIO.read(imageUrl);
outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "png", outputStream);
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
Base64 encoder = new Base64();
return String.format("%s%s","data:image/png;base64,", new String(encoder.encode(outputStream.toByteArray())));// 返回Base64编码过的字节数组字符串
}
/**
* 将本地图片进行Base64位编码
*
* @param imgUrl
* 图片的url路径,如http://.....xx.jpg
* @return
*/
public static String encodeImgageToBase64(File imageFile) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
ByteArrayOutputStream outputStream = null;
try {
BufferedImage bufferedImage = ImageIO.read(imageFile);
outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "png", outputStream);
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
Base64 encoder = new Base64();
return String.format("%s%s","data:image/png;base64,", new String(encoder.encode(outputStream.toByteArray())));// 返回Base64编码过的字节数组字符串
}
/**
* 将Base64位编码的图片进行解码,并保存到指定目录
*
* @param base64
* base64编码的图片信息
* @return
*/
public static void decodeBase64ToImage(String base64, String path,
String imgName) {
Base64 decoder = new Base64();
try {
FileOutputStream write = new FileOutputStream(new File(path
+ imgName));
byte[] decoderBytes = decoder.decode(base64);
write.write(decoderBytes);
write.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws MalformedURLException {
String s="data:image/png;base64,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";
String[] data=s.split(",");
System.out.println(RegexUtil.findStrByRegx(data[0], "/\\w+").substring(1));
System.out.println(data[1]);
/*
Base64ImgUtil.decodeBase64ToImage(s,
"C:\\", "demo.png");*/
}
}