我的日常

登录/注册
您现在的位置:论坛 资料库 JAVA开发 > 将图片文件转化为字节数组字符串,并对其进行Base64编码 ...
总共48086条微博

动态微博

查看: 1540|回复: 1

将图片文件转化为字节数组字符串,并对其进行Base64编码处理

[复制链接]

279

主题

41

听众

689

金钱

版主

该用户从未签到

跳转到指定楼层
楼主
发表于 2015-03-30 10:30:56 |只看该作者 |倒序浏览
  1. package com.fh.util;

  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.OutputStream;
  7. import sun.misc.BASE64Decoder;
  8. import sun.misc.BASE64Encoder;

  9. public class ImageAnd64Binary {
  10.     public static void main(String[] args){
  11.            
  12.                 String imgSrcPath          = "d:/abc/123.jpg";     //生成64编码的图片的路径
  13.                 String imgCreatePath = "E:\\apache-tomcat-6.0.37\\webapps/pro/ueditor2/jsp/upload1/20140318/480ace2bfc6e44608595bd4adbdeb067.jpg";     //将64编码生成图片的路径
  14.                 imgCreatePath=imgCreatePath.replaceAll("\\\", "/");
  15.                 System.out.println(imgCreatePath);
  16.             String strImg = getImageStr(imgSrcPath);
  17.             System.out.println(strImg);
  18.         generateImage(strImg, imgCreatePath);
  19.     }
  20.    
  21.    /**
  22.      * 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
  23.      * @param imgSrcPath 生成64编码的图片的路径
  24.      * @return
  25.      */
  26.     public static String getImageStr(String imgSrcPath){
  27.         InputStream in = null;
  28.         byte[] data = null;
  29.         
  30.         //读取图片字节数组
  31.         try {
  32.             in = new FileInputStream(imgSrcPath);        
  33.             data = new byte[in.available()];
  34.             in.read(data);
  35.             in.close();
  36.         } catch (IOException e) {
  37.             e.printStackTrace();
  38.         }
  39.         
  40.         //对字节数组Base64编码
  41.         BASE64Encoder encoder = new BASE64Encoder();
  42.         
  43.         return encoder.encode(data);//返回Base64编码过的字节数组字符串
  44.     }
  45.    
  46.     /**
  47.      * 对字节数组字符串进行Base64解码并生成图片
  48.      * @param imgStr            转换为图片的字符串
  49.      * @param imgCreatePath     将64编码生成图片的路径
  50.      * @return
  51.      */
  52.     public static boolean generateImage(String imgStr, String imgCreatePath){
  53.         if (imgStr == null) //图像数据为空
  54.             return false;
  55.         BASE64Decoder decoder = new BASE64Decoder();
  56.         try {
  57.             //Base64解码
  58.             byte[] b = decoder.decodeBuffer(imgStr);
  59.             for(int i=0;i<b.length;++i) {
  60.                 if(b[i]<0) {//调整异常数据
  61.                     b[i]+=256;
  62.                 }
  63.             }
  64.             
  65.             OutputStream out = new FileOutputStream(imgCreatePath);   
  66.             out.write(b);
  67.             out.flush();
  68.             out.close();
  69.             return true;
  70.         } catch (Exception e){
  71.             return false;
  72.         }
  73.     }
  74.    
  75. }
复制代码



科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

1

主题

0

听众

348

金钱

四袋长老

该用户从未签到

沙发
发表于 2016-05-15 20:47:41 |只看该作者
啥意思
回复

使用道具 举报

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表