Java实现base64图片编码数据转换为本地图片的方法
程序员文章站
2023-12-22 09:11:10
本文实例讲述了java实现base64图片编码数据转换为本地图片的方法。分享给大家供大家参考,具体如下:
项目中用到的把base64图片数据转为本地图片的函数...
本文实例讲述了java实现base64图片编码数据转换为本地图片的方法。分享给大家供大家参考,具体如下:
项目中用到的把base64图片数据转为本地图片的函数
/** * 替换html中的base64图片数据为实际图片 * @param html * @param fileroot 本地路径 * @param serroot 服务器路径 * @return */ public static string replacebase64image(string html,string fileroot,string serroot){ file file = new file(fileroot); if(!file.exists()){//文件根目录不存在时创建 new file(fileroot).mkdirs(); } string htmlcontent = html; pattern pattern = pattern.compile("\\<img[^>]*src=\"data:image/[^>]*>"); matcher matcher = pattern.matcher(html); guidutils.init(); while(matcher.find()){ //找出base64图片元素 string str = matcher.group(); string src = exstringutils.substringbetween(str, "src=\"", "\"");//src="..." string ext = exstringutils.defaultifempty(exstringutils.substringbetween(str, "data:image/", ";"), "jpg");//图片后缀 string base64imgdata = exstringutils.substringbetween(str, "base64,", "\"");//图片数据 if(exstringutils.isnotblank(ext)&&exstringutils.isnotblank(base64imgdata)){ //data:image/gif;base64,base64编码的gif图片数据 //data:image/png;base64,base64编码的png图片数据 if("jpeg".equalsignorecase(ext)){//data:image/jpeg;base64,base64编码的jpeg图片数据 ext = "jpg"; } else if("x-icon".equalsignorecase(ext)){//data:image/x-icon;base64,base64编码的icon图片数据 ext = "ico"; } string filename = guidutils.buildmd5guid(false)+"."+ext;//待存储的文件名 string filepath = fileroot+file.separator+filename;//图片路径 try { convertbase64datatoimage(base64imgdata, filepath);//转成文件 string serpath = serroot+filename;//服务器地址 htmlcontent = htmlcontent.replace(src, serpath);//替换src为服务器地址 } catch (ioexception e) { e.printstacktrace(); } } } return htmlcontent; } /** * 把base64图片数据转为本地图片 * @param base64imgdata * @param filepath * @throws ioexception */ public static void convertbase64datatoimage(string base64imgdata,string filepath) throws ioexception { base64decoder d = new base64decoder(); byte[] bs = d.decodebuffer(base64imgdata); fileoutputstream os = new fileoutputstream(filepath); os.write(bs); os.close(); }
ps:这里再为大家提供几款base64在线工具供大家参考:
base64编码解码工具:
在线图片转换base64工具:
base64在线编码解码 utf-8版:
base64在线编码解码 gb2312版:
更多关于java相关内容感兴趣的读者可查看本站专题:《java编码操作技巧总结》、《java数学运算技巧总结》、《java数据结构与算法教程》、《java字符与字符串操作技巧总结》、《java操作dom节点技巧总结》和《java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。