將網絡圖片轉換成base64格式


 1. 圖片中存在中文時,可能會造成無法正確獲取網絡圖片的問題,便需要進行轉碼。

String picNameUrlEncode = URLEncoder.encode(pictureUrl, "UTF-8");

 2.  具體實現

/**
     * 將網絡圖片編碼為base64
     *
     * @param url 網絡圖片url
     * @return
     * @throws
     */
    public static String encodeImageToBase64(URL url) throws Exception {

//打開鏈接 HttpURLConnection conn = null; InputStream inStream = null; ByteArrayOutputStream out = null; try { conn = (HttpURLConnection) url.openConnection(); //設置請求方式為"GET" conn.setRequestMethod("GET"); //超時響應時間為5秒 conn.setConnectTimeout(5 * 1000); //通過輸入流獲取圖片數據 inStream = conn.getInputStream(); //得到圖片的二進制數據,以二進制封裝得到數據,具有通用性 // ByteArrayOutputStream outStream = new ByteArrayOutputStream(); out = new ByteArrayOutputStream(); //創建一個Buffer字符串 byte[] buffer = new byte[1024]; //每次讀取的字符串長度,如果為-1,代表全部讀取完畢 int len = 0; //使用一個輸入流從buffer里把數據讀取出來 while ((len = inStream.read(buffer)) != -1) { //用輸出流往buffer里寫入數據,中間參數代表從哪個位置開始讀,len代表讀取的長度 out.write(buffer, 0, len); } byte[] data = out.toByteArray(); //對字節數組Base64編碼 BASE64Encoder encoder = new BASE64Encoder(); String base64 = encoder.encode(data); return base64;//返回Base64編碼過的字節數組字符串 } catch (IOException e) { e.printStackTrace(); throw new Exception("========圖片上傳失敗,請確定圖片是否存在=========", e); } finally {//關閉輸入流 if (out != null) { out.close(); } if (inStream != null) { inStream.close(); } } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM