Java將網(wǎng)絡(luò)圖片轉(zhuǎn)成輸入流以及將url轉(zhuǎn)成InputStream問題
將網(wǎng)絡(luò)圖片轉(zhuǎn)成輸入流以及將url轉(zhuǎn)成InputStream
private static InputStream getImageStream(String url) {
try {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
connection.setReadTimeout(5000);
connection.setConnectTimeout(5000);
connection.setRequestMethod("GET");
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
InputStream inputStream = connection.getInputStream();
return inputStream;
}
} catch (IOException e) {
log.info("獲取網(wǎng)絡(luò)圖片出現(xiàn)異常,圖片路徑為:" + url);
e.printStackTrace();
}
return null;
}Java將圖片轉(zhuǎn)成Base64
在日常的開發(fā)中,圖片展示是一個(gè)經(jīng)常見的開發(fā)任務(wù),而圖片展示也有好多種方式。
但也有一種是通過轉(zhuǎn)成Base64編碼來完成。
下面就是通過流轉(zhuǎn)成Base64編碼的主要代碼。
try (InputStream in = null;
? ? ?ByteArrayOutputStream out = new ByteArrayOutputStream()) {
? ? ?? ??? ?//建一個(gè)空的字節(jié)數(shù)組
? ? ? ? ? ? byte[] result = null;
? ?? ??? ??? ?in=.........(獲取你的圖片的輸入流)
? ? ? ? ? ? byte[] buf = new byte[1024];
? ? ?? ??? ?//用來定義一個(gè)準(zhǔn)備接收圖片總長度的局部變量
? ? ? ? ? ? int len;
? ? ?? ??? ?//將流的內(nèi)容讀取到buf內(nèi)存中
? ? ? ? ? ? while ((len = in.read(buf)) > 0) {
? ? ? ? ? ? ? ? //將buf內(nèi)存中的內(nèi)容從0開始到總長度輸出出去
? ? ? ? ? ? ? ? out.write(buf, 0, len);
? ? ? ? ? ? }
? ? ?? ??? ?//將out中的流內(nèi)容拷貝到一開始定義的字節(jié)數(shù)組中
? ? ? ? ? ? result = out.toByteArray();
? ? ?? ??? ?//通過util包中的Base64類對字節(jié)數(shù)組進(jìn)行base64編碼
? ? ? ? ? ? String base64 = Base64.getEncoder().encodeToString(result);
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? }以上就是Java轉(zhuǎn)成Base64的主要邏輯代碼,剩下的就是將這段邏輯套入到你自己的代碼里面。
注:如果需要返回到前端展示則需要加上一個(gè)前綴:
String code = "data:Image/" + "你的圖片格式(例如:JPG/PNG)等等" + ";base64," + base64;
如果前端需要展示圖片,就將code返回給前端。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決swaggerUI頁面沒有顯示Controller方法的坑
這篇文章主要介紹了解決swaggerUI頁面沒有顯示Controller方法的坑,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06

