關(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)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
IDEA自動(dòng)清理類中未使用的import包的操作方法
在項(xiàng)目開發(fā)中,經(jīng)常會(huì)引入很多未使用的import包,這不僅增加了編譯時(shí)間,還會(huì)使代碼可讀性變差,設(shè)置IDEA自動(dòng)清理未使用的import包,可以提高代碼的可讀性,本文給大家介紹IDEA自動(dòng)清理類中未使用的import包的方法,感興趣的朋友一起看看吧2024-09-09
java實(shí)現(xiàn)將文件上傳到ftp服務(wù)器的方法
這篇文章主要介紹了java實(shí)現(xiàn)將文件上傳到ftp服務(wù)器的方法,結(jié)合實(shí)例形式分析了基于java實(shí)現(xiàn)的ftp文件傳輸類定義與使用方法,需要的朋友可以參考下2016-08-08
Idea2023配置JavaWeb項(xiàng)目(最新)
本文將介紹如何配置JavaWeb項(xiàng)目,以在Idea中實(shí)現(xiàn)開發(fā)環(huán)境,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
Spring使用RestTemplate模擬form提交示例
本篇文章主要介紹了Spring使用RestTemplate模擬form提交示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
關(guān)于SpringMVC中數(shù)據(jù)綁定@ModelAttribute注解的使用
這篇文章主要介紹了關(guān)于SpringMVC中數(shù)據(jù)綁定@ModelAttribute注解的使用,SpringMVC是一個(gè)基于Spring框架的Web框架,它提供了一種簡(jiǎn)單、靈活的方式來(lái)開發(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

