base64字符串与图片的转换

来源:互联网 发布:ubuntu 网络配置 编辑:程序博客网 时间:2024/04/30 12:31

完整代码:

package test;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import sun.misc.BASE64Decoder;  import sun.misc.BASE64Encoder;  public class Base64Test   {      public static void main(String[] args)      {          String strImg = GetImageStr();          System.out.println(strImg);          GenerateImage(strImg);      }      //图片转化成base64字符串      public static String GetImageStr()      {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理          String imgFile = "E://old.jpg";//待处理的图片          InputStream in = null;          byte[] data = null;          //读取图片字节数组          try           {              in = new FileInputStream(imgFile);                      data = new byte[in.available()];              in.read(data);              in.close();          }           catch (IOException e)           {              e.printStackTrace();          }          //对字节数组Base64编码          BASE64Encoder encoder = new BASE64Encoder();          return encoder.encode(data);//返回Base64编码过的字节数组字符串      }      //base64字符串转化成图片      public static boolean GenerateImage(String imgStr)      {   //对字节数组字符串进行Base64解码并生成图片          if (imgStr == null) //图像数据为空              return false;          BASE64Decoder decoder = new BASE64Decoder();          try           {              //Base64解码              byte[] b = decoder.decodeBuffer(imgStr);              //生成jpeg图片              String imgFilePath = "E://new.jpg";//新生成的图片              OutputStream out = new FileOutputStream(imgFilePath);                  out.write(b);              out.flush();              out.close();              return true;          }           catch (Exception e)           {              return false;          }      }  }  

注意

前端通过FileReader方式获取的base64字符串,直接用上面的GenerateImage方法执行,生成的图片是打不开的,需要去掉开头的 data:[][;charset=][;base64], 那部分字符串。前端需做截取处理 data= data.substring(data.indexOf(“,”) + 1);

详情请见:http://blog.csdn.net/mytdyhm123456/article/details/62044058

0 0
原创粉丝点击