關(guān)于JAVA11中圖片與BASE64相互轉(zhuǎn)換的實(shí)現(xiàn)
由于jdk 1.8 之后sun.misc 包下的 BASE64Decode的依賴 被移除
我們需要在自己的項(xiàng)目中引入EncodeUtils 工具類 幫助我們進(jìn)行轉(zhuǎn)換
public class EncodeUtils { private static final String DEFAULT_URL_ENCODING = "UTF-8"; /** * Base64編碼. */ public static String base64Encode(byte[] input) { return new String(Base64.encodeBase64(input)); } /** * Base64解碼. */ public static byte[] base64Decode(String input) { return Base64.decodeBase64(input); } }
在項(xiàng)目中測(cè)試
直接調(diào)用工具類中的方法即可
/*** * <p> * description: base64字符串轉(zhuǎn)圖片 * <p> * @see */ static void base64StringToImage(String base64String) { try { byte[] bytes1 = EncodeUtils.base64Decode(base64String); ByteArrayInputStream bais = new ByteArrayInputStream(bytes1); BufferedImage bi1 = ImageIO.read(bais); File f1 = new File("F:/wpcache/test/test.jpg"); ImageIO.write(bi1, "jpg", f1); } catch (IOException e) { e.printStackTrace(); } } /*** * <p> * description:圖片轉(zhuǎn)base64字符串: * <p> * @see */ public static String getImgStr(String imgFile) { // 將圖片文件轉(zhuǎn)化為字節(jié)數(shù)組字符串,并對(duì)其進(jìn)行Base64編碼處理 InputStream in = null; byte[] data = null; // 讀取圖片字節(jié)數(shù)組 try { in = new FileInputStream(imgFile); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } return EncodeUtils.base64Encode(data); }
在main方法中運(yùn)行
public static void main(String[] args) { String base64Str = getImgStr("F:/wpcache/2.jpg"); System.out.println(base64Str); base64StringToImage(base64Str); }
運(yùn)行結(jié)果
圖片轉(zhuǎn)BASE64 效果圖
BASE64 轉(zhuǎn)圖片 效果圖
(注:這個(gè)生成的圖片路徑就是自己在base64StringToImage 方法中的路徑)
到此這篇關(guān)于關(guān)于JAVA11中圖片與BASE64相互轉(zhuǎn)換的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)JAVA11圖片與BASE64相互轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java數(shù)據(jù)類型和運(yùn)算符的深入講解
這篇文章主要給大家介紹了關(guān)于java數(shù)據(jù)類型和運(yùn)算符的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03IDEA自動(dòng)清理類中未使用的import包的操作方法
在項(xiàng)目開發(fā)中,經(jīng)常會(huì)引入很多未使用的import包,這不僅增加了編譯時(shí)間,還會(huì)使代碼可讀性變差,設(shè)置IDEA自動(dòng)清理未使用的import包,可以提高代碼的可讀性,本文給大家介紹IDEA自動(dòng)清理類中未使用的import包的方法,感興趣的朋友一起看看吧2024-09-09java實(shí)現(xiàn)將文件上傳到ftp服務(wù)器的方法
這篇文章主要介紹了java實(shí)現(xiàn)將文件上傳到ftp服務(wù)器的方法,結(jié)合實(shí)例形式分析了基于java實(shí)現(xiàn)的ftp文件傳輸類定義與使用方法,需要的朋友可以參考下2016-08-08Idea2023配置JavaWeb項(xiàng)目(最新)
本文將介紹如何配置JavaWeb項(xiàng)目,以在Idea中實(shí)現(xiàn)開發(fā)環(huán)境,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09Spring使用RestTemplate模擬form提交示例
本篇文章主要介紹了Spring使用RestTemplate模擬form提交示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03關(guān)于SpringMVC中數(shù)據(jù)綁定@ModelAttribute注解的使用
這篇文章主要介紹了關(guān)于SpringMVC中數(shù)據(jù)綁定@ModelAttribute注解的使用,SpringMVC是一個(gè)基于Spring框架的Web框架,它提供了一種簡(jiǎn)單、靈活的方式來開發(fā)Web應(yīng)用程序,在開發(fā)Web應(yīng)用程序時(shí),我們需要將用戶提交的數(shù)據(jù)綁定到我們的Java對(duì)象上,需要的朋友可以參考下2023-07-07淺談java中replace()和replaceAll()的區(qū)別
這篇文章主要介紹了java中replace()和replaceAll()的區(qū)別,兩者都是常用的替換字符的方法,感興趣的小伙伴們可以參考一下2015-11-11