java實現網路圖片轉換為base64字串
阿新 • • 發佈:2019-01-09
功能需求:將網路圖片轉換為base64字串傳給前端
lg:String url = "https://www.baidu.com/369270f.jpg";
base64轉碼之後:
url = "/9j/4AAQSkZJRg......G9AFqq6";
程式碼實現:
package test; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import sun.misc.BASE64Encoder; public class Base64Util { public static void main(String[] args) { String filePath = "https://www.baidu.com/369270f.jpg";//待處理的圖片 System.out.println(GetImageStrFromUrl(filePath));//轉換後的base64字串 } /** * 將一張網路圖片轉化成Base64字串 * @param imgURL * @return */ public static String GetImageStrFromUrl(String imgURL) { ByteArrayOutputStream data = new ByteArrayOutputStream(); try { // 建立URL URL url = new URL(imgURL); byte[] by = new byte[1024]; // 建立連結 HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); InputStream is = conn.getInputStream(); // 將內容讀取記憶體中 int len = -1; while ((len = is.read(by)) != -1) { data.write(by, 0, len); } // 關閉流 is.close(); } catch (IOException e) { e.printStackTrace(); } // 對位元組陣列Base64編碼 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data.toByteArray()); } }
如果需要在轉換工具中檢驗是否轉換成功,則需要在轉換後的編碼前面加:"data:image/jpg;base64, "