java 80转84,java,Base64和图片互相转换(JDK 8以上)

java,Base64和图片互相转换(JDK 8以上)

发布时间:2018-05-19作者:laosun阅读(2739)

0f9e8264915948f7a1174b4a48c40c63.gif

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"));

}

}

af499b9437efec8e1b25c2bb396e60d7.png

3 +1

版权声明

分享到:

发表评论

请文明留言

发表

共 0 条评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值