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,"解码之前这个得去掉。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。