java,Base64和图片互相转换(JDK 8以上)
发布时间:2018-05-19作者:laosun阅读(2739)
java,Base64和图片互相转换
直接上代码(本站发过的代码都是经过博主亲自测试过的):// _ooOoo_
// o8888888o
// 88" . "88
// (| -_- |)
// O\ = /O
// ____/`---'\____
// . ' \\| |// `.
// / \\||| : |||// \
// / _||||| -:- |||||- \
// | | \\\ - /// | |
// | \_| ''\---/'' | |
// \ .-\__ `-` ___/-. /
// ___`. .' /--.--\ `. . __
// ."" '_/___.' >'"".
// | | : `- \`.;`\ _ /`;.`/ - ` : | |
// \ \ `-. \_ __\ /__ _/ .-` / /
// ======`-.____`-.___\_____/___.-`____.-'======
// `=---='
//
// .............................................
// 佛祖保佑 永无BUG
// 佛曰:
// 写字楼里写字间,写字间里程序员;
// 程序人员写程序,又拿程序换酒钱。
// 酒醒只在网上坐,酒醉还来网下眠;
// 酒醉酒醒日复日,网上网下年复年。
// 但愿老死电脑间,不愿鞠躬老板前;
// 奔驰宝马贵者趣,公交自行程序员。
// 别人笑我忒疯癫,我笑自己命太贱;
// 不见满街漂亮妹,哪个归得程序员?
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Base64;
/**
* java实现Base64编码和图片互相转换
*
* @author sun
* @date 2018年5月18日 上午10:50:46
*/
public class Demo {
/**
* 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
*
* @author sun
* @date 2018年5月18日 上午10:50:37
* @param path
* 图片路径
* @return
*/
public static String imageToBase64(String path) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
byte[] data = null;
// 读取图片字节数组
try {
InputStream in = new FileInputStream(path);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码 JDK8以上
Base64.Encoder encoder = Base64.getEncoder();
return encoder.encodeToString(data);// 返回Base64编码过的字节数组字符串
}
/**
* 对字节数组字符串进行Base64解码并生成图片
*
* @author sun
* @date 2018年5月18日 上午10:50:22
* @param base64
* 图片Base64数据
* @param path
* 图片路径
* @return
*/
public static boolean base64ToImage(String base64, String path) {// 对字节数组字符串进行Base64解码并生成图片
if (base64 == null) { // 图像数据为空
return false;
}
// JDK8以上
Base64.Decoder decoder = Base64.getDecoder();
try {
// Base64解码
byte[] bytes = decoder.decode(base64);
for (int i = 0; i
if (bytes[i]
bytes[i] += 256;
}
}
// 生成jpeg图片
OutputStream out = new FileOutputStream(path);
out.write(bytes);
out.flush();
out.close();
return true;
} catch (Exception e) {
return false;
}
}
public static void main(String[] args) {
String encodeStr = imageToBase64("/Users/sun/Documents/1.png");
System.out.println("Base64:"+encodeStr);
System.out.println(base64ToImage(encodeStr, "/Users/sun/Documents/2.png"));
}
}
3 +1
版权声明
分享到:
发表评论
请文明留言
发表
共 0 条评论