獲取圖片 base64編碼
阿新 • • 發佈:2019-01-23
// 獲取圖片並編碼
byte[] data = null;
try {
// 建立URL
URL url = new URL(img);//img是圖片的地址
// 建立連結
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(60 * 1000);
InputStream inStream = conn.getInputStream();
///////////////////////////////////////////////////////////
/*int count = 0;
while (count == 0) {
count = inStream.available();//注意這段註釋掉的available方法,這個方法不能保證能全部讀取圖片的資料資訊,所以得到的圖片是部分的。此方法不可用
}
data = new byte[count];
inStream.read(data);*/
///////////////////////////////////////////////////////////
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int len = 0;
// 將內容讀到b中,讀到末尾為-1
while ((len = inStream.read(b)) != -1)
{
// 本例子將每次讀到位元組陣列(buffer變數)內容寫到記憶體緩衝區中,起到儲存每次內容的作用
outStream.write(b, 0, len);
}
data = outStream.toByteArray(); // 取記憶體中儲存的資料
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder();
// 返回Base64編碼過的位元組陣列字串
String imgbase64 = encoder.encode(data);