1. 程式人生 > >關於圖片與base64相互轉換的工具類

關於圖片與base64相互轉換的工具類

生成 ++ base64 url 字節數組 out 鏈接 false 需要

最近在編寫平臺對接軟件,需要從Oracle中取出blob類型圖片數據轉換為base64字符串寫入到xml中,這裏記錄一下用到的轉換方法 // 將一張本地圖片轉化成Base64字符串 public static String GetImageStrFromPath(String imgPath) { InputStream in = null; byte[] data = null; // 讀取圖片字節數組 try { in = new FileInputStream(imgPath); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } // 對字節數組Base64編碼 BASE64Encoder encoder = new BASE64Encoder(); // 返回Base64編碼過的字節數組字符串 return encoder.encode(data); } // 將一張網絡圖片轉化成Base64字符串 public String GetImageStrFromUrl(String imgURL) { byte[] data = null; try { // 創建URL URL url = new URL(imgURL); // 創建鏈接 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5 * 1000); InputStream inStream = conn.getInputStream(); data = new byte[inStream.available()]; inStream.read(data); inStream.close(); } catch (IOException e) { e.printStackTrace(); } // 對字節數組Base64編碼 BASE64Encoder encoder = new BASE64Encoder(); // 返回Base64編碼過的字節數組字符串 return encoder.encode(data); } // 將blob類型圖片轉換為Base64字符串 public static String blobToBase64(Blob blob) { String result = ""; if (null != blob) { try { InputStream msgContent = blob.getBinaryStream(); ByteArrayOutputStream output = new ByteArrayOutputStream(); byte[] buffer = new byte[100]; int n = 0; while (-1 != (n = msgContent.read(buffer))) { output.write(buffer, 0, n); } result = new BASE64Encoder().encode(output.toByteArray()); output.close(); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return result; } else { return null; } } // 將base64字符串轉換成圖片 public static boolean GenerateImage(String imgStr) { if (imgStr == null) // 圖像數據為空 return false; BASE64Decoder decoder = new BASE64Decoder(); try { // Base64解碼 byte[] b = decoder.decodeBuffer(imgStr); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {// 調整異常數據 b[i] += 256; } } // 生成jpeg圖片 String imgFilePath = "d://222.jpg"; OutputStream out = new FileOutputStream(imgFilePath); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } }

關於圖片與base64相互轉換的工具類