1. 程式人生 > >圖片url轉base64

圖片url轉base64

package com.lance.application.utils;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import org.springframework.util.Base64Utils;

public class PicUtils {
	
	public static void main(String[] args) {
		try {
			String result = GetUrlImageToBase64("http://wx.qlogo.cn/mmopen/LNbf7sBg8knI4jl9d59XJsSm7mKFmKjS6SgOp4eZZU3zdJlUuHibGFWkEBia2nLJCeywKpZic5WicQunTh6ZsicsUmlDGUDynxEhU/0");
			System.out.println(result);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static String GetUrlImageToBase64(String url) throws Exception {  
        if (url == null || "".equals(url.trim()))  
            return null;  
        URL u = new URL(url);  
        // 開啟圖片路徑  
        HttpURLConnection conn = (HttpURLConnection) u.openConnection();  
        // 設定請求方式為GET  
        conn.setRequestMethod("GET");  
        // 設定超時響應時間為5秒  
        conn.setConnectTimeout(5000);
        conn.setReadTimeout(5000);
        // 通過輸入流獲取圖片資料  
        InputStream inStream = conn.getInputStream(); 
        ByteArrayOutputStream swapStream = new ByteArrayOutputStream();  
        byte[] buff = new byte[1024];  
        int rc = 0;  
        while ((rc = inStream.read(buff, 0, 1024)) > 0) {  
            swapStream.write(buff, 0, rc);  
        }  
        byte[] in2b = swapStream.toByteArray();
        // 讀取圖片位元組陣列  
        inStream.close();  
        // 返回Base64編碼過的位元組陣列字串 
        String result = Base64Utils.encodeToString(in2b);
        String res = "data:image/jpg;base64,"+result;	
        return res;    
    }
}