首页 / 更多教程 / base64和图片的相互转换
base64和图片的相互转换
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了base64和图片的相互转换,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2821字,纯文字阅读大概需要5分钟。
内容图文
package czc.superzig.modular.utils; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; import java.net.MalformedURLException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSONObject; import com.sun.jna.NativeLong; import cn.hutool.core.codec.Base64Decoder; import czc.superzig.common.operatingtable.base.entity.Result; import czc.superzig.modular.system.operatingtable.entity.CameraBlock; import czc.superzig.modular.utils.camera.DemoCapture; import groovyjarjarantlr.collections.List; publicclass Base64 { privatestaticfinal String separator = "/"; privatefinalstatic ExecutorService executor = Executors.newCachedThreadPool();//启用多线程 //获取base64字符串publicstatic String encodeBase64(String filaName,boolean isSafe) { if(StringUtils.isBlank(filaName)){ thrownew NullPointerException(); } InputStream in = null; byte[] data = null; String encodedText=null; //读取图片字节数组try { in = new BufferedInputStream(new FileInputStream(filaName)); data = newbyte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } //对字节数组Base64编码if(isSafe){ java.util.Base64.Encoder encoder = java.util.Base64.getUrlEncoder(); encodedText = encoder.encodeToString(data); }else{ BASE64Encoder encoder = new BASE64Encoder(); encodedText=encoder.encode(data); encodedText=encodedText.replaceAll("[\\s*\t\n\r]", ""); } return encodedText; } //解析base64publicstatic String decodeBase64(String base64,String filePath,String suffix,boolean isSafe){ if(StringUtils.isBlank(base64)||StringUtils.isBlank(filePath)||StringUtils.isBlank(suffix)){ thrownew NullPointerException(); } OutputStream out=null; String fileName=null; try { byte[] b=newbyte[2048]; if(isSafe){ java.util.Base64.Decoder decoder = java.util.Base64.getUrlDecoder(); b = decoder.decode(base64); }else{ BASE64Decoder decoder = new BASE64Decoder(); b = decoder.decodeBuffer(base64.substring(base64.indexOf(",") + 1)); } for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {// 调整异常数据 b[i] += 256; } } File file=new File(filePath); if(!file.exists()){ file.mkdirs(); } fileName=filePath+System.currentTimeMillis()+"."+suffix; out = new BufferedOutputStream(new FileOutputStream(fileName)); out.write(b); out.flush(); }catch (Exception e) { }finally { if(out!=null){ try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } return fileName; } }
原文:https://www.cnblogs.com/xiatc/p/12362337.html
内容总结
以上是互联网集市为您收集整理的base64和图片的相互转换全部内容,希望文章能够帮你解决base64和图片的相互转换所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。