base64与图片之间的转换
2015-12-07 17:52
260 查看
实现:base64与图片之间的转换 + 上传的简单实现
package com.thinkive.bank.mass.plat.bus.common.util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /** * base64与图片之间的转换 * @author xuwx * */ public class GenerateImage { /** * @描述 base64转换成图片 * @param imgStr * @return */ public boolean decoder(String imgStr) { if (null == imgStr) return false; BASE64Decoder decoder = new BASE64Decoder(); try { byte[] b = decoder.decodeBuffer(imgStr); for (int i = 0; i < b.length; i++) { if (b[i] < 0) { b[i] += 256; } } String rootPath=Thread.currentThread().getContextClassLoader().getResource("").toString(); //文件保存根目录位置 rootPath=rootPath.substring(rootPath.indexOf("/")); //重新组合根目录位置 String lastPath=rootPath+"/uploadFile/"; //最终组合的保存文件夹 File file=new File(lastPath); if(!file.exists()) { file.mkdir(); } String nowTime=new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); //时间戳,防止文件重名 String imgFilePath = lastPath+"电子签名("+nowTime+ ").jpg"; OutputStream out = new FileOutputStream(imgFilePath); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } } /** * @描述 图片转换成base64 * @param imgStr * @return */ public String encoder() { File file=new File("H:/图片/金属合金.jpg"); FileInputStream input=null; byte[] data =null; try { input=new FileInputStream(file); data=new byte[input.available()]; input.read(data); input.close(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e1) { e1.printStackTrace(); } BASE64Encoder e=new BASE64Encoder(); return e.encode(data); } /** * 测试代码 * @param args */ public static void main(String[] args) { GenerateImage gen=new GenerateImage(); String encoderStr=gen.encoder(); gen.decoder(encoderStr); } }
相关文章推荐
- PostgreSQL表空间
- UIView常用属性以及方法
- Huffman学习记录 c语言
- [Javascript Data Structures] 冒泡排序 bubble sort
- 移动端与pc端公用一个域名
- C++类中定义线程
- 表格的变色问题
- 工作流的学习(四)
- waiting for table metadata lock 问题深入分析
- linux sort,uniq,cut,wc,tr命令详解
- Python 元组简单用法
- 工作环境搭建(1) - CentOS7虚拟机的最小化安装
- Hadoop2.6.0学习笔记(八)InputFormat和OutputFormat
- 详解Java线程编程中的volatile关键字的作用
- 数学公式
- Eclipse中Tomcat启动但是不显示Started或Debugging
- JS浮点数(小数)计算加减乘除
- java日期操作
- 表格隔行变色
- 去除listview的底部和顶部拖动时出现的阴影