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ā)中,圖片展示是一個經(jīng)常見的開發(fā)任務(wù),而圖片展示也有好多種方式。
但也有一種是通過轉(zhuǎn)成Base64編碼來完成。
下面就是通過流轉(zhuǎn)成Base64編碼的主要代碼。
try (InputStream in = null; ? ? ?ByteArrayOutputStream out = new ByteArrayOutputStream()) { ? ? ?? ??? ?//建一個空的字節(jié)數(shù)組 ? ? ? ? ? ? byte[] result = null; ? ?? ??? ??? ?in=.........(獲取你的圖片的輸入流) ? ? ? ? ? ? byte[] buf = new byte[1024]; ? ? ?? ??? ?//用來定義一個準(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的主要邏輯代碼,剩下的就是將這段邏輯套入到你自己的代碼里面。
注:如果需要返回到前端展示則需要加上一個前綴:
String code = "data:Image/" + "你的圖片格式(例如:JPG/PNG)等等" + ";base64," + base64;
如果前端需要展示圖片,就將code返回給前端。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot與Kotlin定時任務(wù)的示例(Scheduling Tasks)
這篇文章主要介紹了Spring Boot與Kotlin定時任務(wù)的示例(Scheduling Tasks),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03Java中==與equals()及hashcode()三者之間的關(guān)系詳解
最近也是在讀Hollis的《深入理解Java核心技術(shù)》里面一節(jié)講到了equals()和hashcode()的關(guān)系,對于這個高頻面試點,咱們需要認(rèn)真理清一下幾者之間的關(guān)系2022-10-10Spring boot2X Consul如何使用Feign實現(xiàn)服務(wù)調(diào)用
這篇文章主要介紹了spring boot2X Consul如何使用Feign實現(xiàn)服務(wù)調(diào)用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12java application maven項目打自定義zip包實例(推薦)
下面小編就為大家?guī)硪黄猨ava application maven項目打自定義zip包實例(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05關(guān)于SpringBoot中Ajax跨域以及Cookie無法獲取丟失問題
這篇文章主要介紹了關(guān)于SpringBoot中Ajax跨域以及Cookie無法獲取丟失問題,本文具有參考意義,遇到相同或者類似問題的小伙伴希望可以從中找到靈感2023-03-03