1. 程式人生 > >Base64圖片轉換為圖片的方式

Base64圖片轉換為圖片的方式

將base64轉換為圖片以及圖片轉換為base64碼的工具類

public class base64Change {
    /**
     * @param imgStr base64編碼字串
     * @param path   圖片路徑-具體到檔案
     */
    public static boolean generateImage(String imgStr, String path) {
        if (imgStr == null)
            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; } } OutputStream out = new FileOutputStream(path); out.write(b); out.flush(); out.close(); return
true; } catch (Exception e) { return false; } //圖片轉化成base64字串 public static String GetImageStr() {//將圖片檔案轉化為位元組陣列字串,並對其進行Base64編碼處理 String imgFile = "F:\\tupian\\a.jpg";//待處理的圖片 // 地址也有寫成"F:/deskBG/86619-107.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編碼過的位元組陣列字串 } }

好了,重點來了,很多人會在這裡出錯!

  public String ChangeBase64(String base64data,Integer certifiedtype,Integer userid,HttpServletRequest request) {
    //這一步很重要很重要很重要,因為base64的資料會有data:base64img,
    //所有需要將這個擷取掉之後轉化,不然就是空白的打不開的檔案
    String base64img = certifieddata.substring(base64data.indexOf(",")+1);

    FileUploadUtils.generateImage(base64img,"F:/deskBG/86619-107.jpg");
    //return null;是為了測試的,實際需求自己定
    return null;
  }