Java 处理图片与base64 编码的相互转换的示例
今天项目优化了一下上传头像的功能。采用imagecropper插件完成裁剪图片的效果。
这个插件裁剪完的图片都是base64加密的字符串,上传头像也就涉及到了如何把加密的字符串转换成图片的问题。
以下是代码:
/**
*@Description:将base64编码字符串转换为图片
*@Author:
*@CreateTime:
*@paramimgStrbase64编码字符串
*@parampath图片路径-具体到文件
*@return
*/
publicstaticbooleangenerateImage(StringimgStr,Stringpath){
if(imgStr==null)
returnfalse;
BASE64Decoderdecoder=newBASE64Decoder();
try{
//解密
byte[]b=decoder.decodeBuffer(imgStr);
//处理数据
for(inti=0;i
解密自然也有加密。以下是加密:
/**
*@Description:根据图片地址转换为base64编码字符串
*@Author:
*@CreateTime:
*@return
*/
publicstaticStringgetImageStr(StringimgFile){
InputStreaminputStream=null;
byte[]data=null;
try{
inputStream=newFileInputStream(imgFile);
data=newbyte[inputStream.available()];
inputStream.read(data);
inputStream.close();
}catch(IOExceptione){
e.printStackTrace();
}
//加密
BASE64Encoderencoder=newBASE64Encoder();
returnencoder.encode(data);
}
再贴一个测试的main函数
/**
*示例
*/
publicstaticvoidmain(String[]args){
StringstrImg=getImageStr("F:/86619-106.jpg");
System.out.println(strImg);
generateImage(strImg,"F:/86619-107.jpg");
}
好了,打完收工。
不过需要注意的是,一般插件返回的base64编码的字符串都是有一个前缀的。
"data:image/jpeg;base64,"解码之前这个得去掉。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。