Base64位元組陣列轉圖片的兩種方法
問題引出: 在某些情況下Rest API約定不允許通過流形式直接GET提供到客戶端直接展示圖片。如果是這樣,那麼就只能把後端生成的圖片轉成ByteArray返回給前臺,讓前臺重新把它變成圖片!這裡提供兩種解析方法
第一種方法: data中包含了一個PNG圖片驗證碼的ByteArray。這個資訊可以放在Base64轉圖片的線上工具上。轉換 { “code”: “200”, “msg”: “操作成功”, “data”: “iVBORw0KGgoAAAANSUhEUgAAAFAAAAAaCAIAAACvsEzwAAABxElEQVR42tWYS2rDMBCGtekJmgMU2l3PkCsUuuklCu0i9ycVqIhhHr/+kaWEGGFsvTyf5iW5XGevy+/P9aGuJnA5wvlYzJPAN2PeMXOds2Q//P55kkV2qA+tPD1/RCUl3HJmClh+u94tsBUOACvml6+3XtRHVdP59dstWeaSWh7M2Z8xsGQmgevMEbDFxnaR8+FGq2a0zJEBY2DJrOrvDKz0rFQtfXgHsJzQZd4IHDHP+TAAlmxKpI3AHbLNaJmtSbu0UiCJFD2QwGSyLNPx3QYwa9JDZhI4Mmm1EFKGvcA9aUW+quqPACsYBdzLYmBl4WppmaDVei40absFWubD9jWK0jhu1Z4qXIFXMkpLW3OZS2oruzZKzwHjPAxQ/4GB9t24J2ntQCZKu2kJv2Y3HmMfjtxdOSezoQeh0ta4Gdi2AuBIgIQPS3KrZOYEEzGnxg6PUMOe1GkpUotcgmlm8riHTYNkZoFdtShrzx5TswMjWVOLeAgYrHGKmR81xOANR7UWppOr4bsz85WylcrDS5QMRmX1BrLJcGZ247FEyViyKC9kmd3/MGPgSKXTqLy/8bEt+sfkruD4N+3tgV2MlJsMDfMPWxwKWHrFVh0AAAAASUVORK5CYII=” }
我們需要的包含了wl35的圖片被成功解析出來
我們還可以使用網頁的形式將它解析:data中包含了一個PNG圖片驗證碼的ByteArray,我們需要在在html檔案中補全程式碼 data:image/png;base64,
第二種方法:通過工具類轉化 傳入位元組陣列和路徑,將位元組陣列做非空判斷判斷後寫入到檔案中
public void byte2image(byte[] data,String path){ if(data.length<3||path.equals("")) return; try{ FileImageOutputStream imageOutput = new FileImageOutputStream(new File(path)); imageOutput.write(data, 0, data.length); imageOutput.close(); System.out.println("Make Picture success,Please find image in " + path); } catch(Exception ex) { System.out.println("Exception: " + ex); ex.printStackTrace(); } }
我們以工作流的流程跟蹤介面為例:將生成的圖片檔案輸出到D盤根目錄下
啟動流程後進行流程跟蹤,可以看到base64的位元組陣列直接解析成了圖片
提交到一級審批,再次進行流程跟蹤,新生成的圖片被覆蓋了
二級審批生成的圖片 打回操作生成的跟蹤圖