JAVA 将图片转换为Base64编码

这里使用的jar包是commons-codec-1.10.jar;

示例代码

 1 import java.io.FileInputStream;
 2 import java.io.FileOutputStream;
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.io.OutputStream;
 6 
 7 import org.apache.commons.codec.binary.Base64;
 8 
 9 
10 /**
11  * 将图片转换为Base64<br>
12  * 将base64编码字符串解码成img图片
13  * @创建时间 2015-06-01 15:50
14  *
15  */
16 public class Img2Base64Util {
17 
18     public static void main(String[] args) {
19         String imgFile = "d:\\3.jpg";//待处理的图片
20         String imgbese=getImgStr(imgFile);
21         System.out.println(imgbese.length());
22         System.out.println(imgbese);
23         String imgFilePath = "d:\\332.jpg";//新生成的图片
24         generateImage(imgbese,imgFilePath);
25     }
26     /**
27      * 将图片转换成Base64编码
28      * @param imgFile 待处理图片
29      * @return
30      */
31     public static String getImgStr(String imgFile){
32         //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
33   
34         
35         InputStream in = null;
36         byte[] data = null;
37         //读取图片字节数组
38         try 
39         {
40             in = new FileInputStream(imgFile);        
41             data = new byte[in.available()];
42             in.read(data);
43             in.close();
44         } 
45         catch (IOException e) 
46         {
47             e.printStackTrace();
48         }
49         return new String(Base64.encodeBase64(data));
50     }
51     
52     /**
53      * 对字节数组字符串进行Base64解码并生成图片
54      * @param imgStr 图片数据
55      * @param imgFilePath 保存图片全路径地址
56      * @return
57      */
58     public static boolean generateImage(String imgStr,String imgFilePath){
59         //
60         if (imgStr == null) //图像数据为空
61             return false;
62      
63         try 
64         {
65             //Base64解码
66             byte[] b = Base64.decodeBase64(imgStr);
67             for(int i=0;i<b.length;++i)
68             {
69                 if(b[i]<0)
70                 {//调整异常数据
71                     b[i]+=256;
72                 }
73             }
74             //生成jpeg图片
75 
76             OutputStream out = new FileOutputStream(imgFilePath);    
77             out.write(b);
78             out.flush();
79             out.close();
80             return true;
81         } 
82         catch (Exception e) 
83         {
84             return false;
85         }
86     }
87 }

 

附上在html中显示图片的示例;

转换后的图片base64编码字符串为/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUD......

先给转换后的字符串加入头文件<img src="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUD......">;

<img src="data:image/jpg;base64,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
">


 

posted @ 2015-06-01 16:08  倚望离寻  阅读(32205)  评论(1编辑  收藏  举报