java jpg解码_Java图片base64编码解码,接口使用

在很多要求上传图片的接口中需要上传图片,可能使用最多的方式就是将图片经过base64编码后以字符串的形式上传,此处介绍一下如何将图片进行base64编码以及解码

1、图片编码。首先要将图片以文件的形式解析为byte[]数组,然后进行编码,在编码时,需要使用BASE64Encoder,此时需要引用sun.misc.BASE64Encoder类

import sun.misc.BASE64Encoder;

具体实现如下:

//将文件转成byte数组,可使用多种方法

public static byte[] getFileByte(String filePath) throwsIOException{byte[] bs=null;

InputStream in=null;

File file=newFile(filePath);try{

in=newFileInputStream(file);

bs=new byte[(int)file.length()];

in.read(bs);

}catch(FileNotFoundException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

in.close();returnbs;

}/**byte[] 转 base64编码 **/

public static String getBase64EncodeString(byte[] bytes){

BASE64Encoder base=newBASE64Encoder();returnbase.encode(bytes);

}

2、讲经过base64编码的字符串进行解码,保存成图片。在解码时,需要使用BASE64Decoder,此时需要引用import sun.misc.BASE64Decoder类

import sun.misc.BASE64Decoder;

具体实现如下:

/**解码base64

*@throwsIOException **/

public static void createImage(String base64String,String imgPath) throwsIOException{

BASE64Decoder decoder=newBASE64Decoder();//解码

byte[] bytes =decoder.decodeBuffer(base64String);//检查调整异常数据

for (int i = 0; i < bytes.length; ++i) {if (bytes[i] < 0) {

bytes[i]+= 256;

}

}

OutputStream out=newFileOutputStream(imgPath);//生成图片

out.write(bytes);

out.flush();

out.close();

}

可能遇到的问题:在引用sun.misc的包时,可能无法引用,此时需要在Build Path-Libraries-Remove [JRE System Library]-然后重新 Add Libraries[JRE System Library]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值