码迷,mamicode.com
首页 > 其他好文 > 详细

base64与图片之间的转换

时间:2015-12-07 20:30:31      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

实现:base64与图片之间的转换 + 上传的简单实现

 1 package com.thinkive.bank.mass.plat.bus.common.util;
 2 
 3 import java.io.File;
 4 import java.io.FileInputStream;
 5 import java.io.FileNotFoundException;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 import java.io.OutputStream;
 9 import java.text.SimpleDateFormat;
10 import java.util.Date;
11 
12 import sun.misc.BASE64Decoder;
13 import sun.misc.BASE64Encoder;
14 
15 /**
16  * base64与图片之间的转换
17  * @author xuwx
18  *
19  */
20 public class GenerateImage {
21     /**
22      * @描述 base64转换成图片
23      * @param imgStr
24      * @return
25      */
26     public boolean decoder(String imgStr) {
27         if (null == imgStr)
28             return false;
29         BASE64Decoder decoder = new BASE64Decoder();
30         try {
31             byte[] b = decoder.decodeBuffer(imgStr);
32             for (int i = 0; i < b.length; i++) {
33                 if (b[i] < 0) {
34                     b[i] += 256;
35                 }
36             }
37             String rootPath=Thread.currentThread().getContextClassLoader().getResource("").toString(); //文件保存根目录位置
38             rootPath=rootPath.substring(rootPath.indexOf("/")); //重新组合根目录位置
39             String lastPath=rootPath+"/uploadFile/"; //最终组合的保存文件夹
40             File file=new File(lastPath);
41             if(!file.exists())
42             {
43                 file.mkdir(); 
44             }
45             String nowTime=new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()); //时间戳,防止文件重名
46             String imgFilePath = lastPath+"电子签名("+nowTime+ ").jpg";
47             OutputStream out = new FileOutputStream(imgFilePath);
48             out.write(b);
49             out.flush();
50             out.close();
51             return true;
52         } catch (Exception e) {
53             return false;
54         }
55     }
56     
57     /**
58      * @描述 图片转换成base64
59      * @param imgStr
60      * @return
61      */
62     public String encoder()
63     {
64         File file=new File("H:/图片/金属合金.jpg");
65         FileInputStream input=null;
66         byte[] data =null;
67         try {
68              input=new FileInputStream(file);
69              data=new byte[input.available()];
70              input.read(data);
71              input.close();
72         } catch (FileNotFoundException e1) {
73             e1.printStackTrace();
74         } catch (IOException e1) {
75             e1.printStackTrace();
76         }
77     
78         BASE64Encoder e=new BASE64Encoder();
79         return e.encode(data);
80     }
81     /**
82      * 测试代码
83      * @param args
84      */
85     public static void main(String[] args) {
86         GenerateImage gen=new GenerateImage();
87         String encoderStr=gen.encoder();
88         gen.decoder(encoderStr);
89     }
90 }

 

base64与图片之间的转换

标签:

原文地址:http://www.cnblogs.com/wenxiangxu/p/5026746.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!