JAVA實現(xiàn)網(wǎng)絡/本地圖片轉(zhuǎn)BASE64存儲代碼示例
網(wǎng)絡圖片轉(zhuǎn)BASE64
String encoder = "data:image/jpg;base64,"; //定義圖片類型,方便前端直接使用
ByteArrayOutputStream data = new ByteArrayOutputStream();
URL url = new URL(picUrl);//picUrl為圖片地址
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream is = connection.getInputStream();
byte[] bytes = new byte[1024];
int len = 0;
while ((len = is.read(bytes)) != -1){
data.write(bytes,0,len);
}
is.close();
BASE64Encoder base64Encoder = new BASE64Encoder();
encoder = encoder + base64Encoder.encode(data.toByteArray()).replace("\r\n","").trim();//這里去掉結(jié)果里面的"\r\n",也可以不去,但是不去的話需要使用的時候還是要去掉,所以為了方便就先去掉再存儲如果是本地圖片的話,其實和網(wǎng)絡圖片相差不多的,主要就是讀取圖片流的形式變一下
String encoder = "data:image/jpg;base64,"; //定義圖片類型,方便前端直接使用
ByteArrayOutputStream data = new ByteArrayOutputStream();
String filePath = "filePath";//這里的filePath為本地存放圖片的地址
FileInputStream is = new FileInputStream(filePath);
byte[] bytes = new byte[1024];
int len = 0;
while ((len = is.read(bytes)) != -1){
data.write(bytes,0,len);
}
is.close();
BASE64Encoder base64Encoder = new BASE64Encoder();
encoder = encoder + base64Encoder.encode(data.toByteArray()).replace("\r\n","").trim();//這里去掉結(jié)果里面的"\r\n",也可以不去,但是不去的話需要使用的時候還是要去掉,所以為了方便就先去掉再存儲附:Java實現(xiàn)圖片和base64之間的互轉(zhuǎn)
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.Base64;
public class ImageUtil {
/**
* 圖片轉(zhuǎn)Base64碼
* @param src
* @return
*/
public static String convertImageToBase64Str(String src) {
ByteArrayOutputStream baos = null;
try {
String suffix = src.substring(src.lastIndexOf(".") + 1);
File imageFile = new File(src);
BufferedImage bufferedImage = ImageIO.read(imageFile);
baos = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, suffix, baos);
byte[] bytes = baos.toByteArray();
return Base64.getEncoder().encodeToString(bytes);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (baos != null) {
baos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
/**
* Base64碼轉(zhuǎn)圖片
* @param base64String
* @param newSrc
*/
public static void convertBase64StrToImage(String base64String, String newSrc) {
ByteArrayInputStream bais = null;
try {
String suffix = newSrc.substring(newSrc.lastIndexOf(".") + 1);
byte[] bytes = Base64.getDecoder().decode(base64String);
bais = new ByteArrayInputStream(bytes);
BufferedImage bufferedImage = ImageIO.read(bais);
File imageFile = new File(newSrc);
ImageIO.write(bufferedImage, suffix, imageFile);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (bais != null) {
bais.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}總結(jié)
到此這篇關(guān)于JAVA實現(xiàn)網(wǎng)絡/本地圖片轉(zhuǎn)BASE64存儲的文章就介紹到這了,更多相關(guān)JAVA圖片轉(zhuǎn)BASE64存儲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java8 stream的多字段排序?qū)崿F(xiàn)(踩坑)
這篇文章主要介紹了java8 stream的多字段排序?qū)崿F(xiàn)(踩坑),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
Spring?Data?JPA?注解Entity關(guān)聯(lián)關(guān)系使用詳解
這篇文章主要為大家介紹了Spring?Data?JPA?注解Entity關(guān)聯(lián)關(guān)系使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09
使用Spring實現(xiàn)@Value注入靜態(tài)字段
這篇文章主要介紹了使用Spring實現(xiàn)@Value注入靜態(tài)字段方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Mybatis實現(xiàn)批量更新數(shù)據(jù)(批量update)
本文介紹了MyBatis批量更新數(shù)據(jù)的兩種方案,方案一使用foreach標簽拼接多條update語句,通過在數(shù)據(jù)庫連接URL中指定allowMultiQueries參數(shù)值為true來支持多條語句的執(zhí)行,提高效率;方案二拼接成一條SQL,但SQL語句會非常復雜且難以閱讀,不推薦使用2026-04-04
詳解Spring框架之基于Restful風格實現(xiàn)的SpringMVC
這篇文章主要介紹了詳解Spring框架之基于Restful風格實現(xiàn)的SpringMVC,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05
如何使用Playwright對Java API實現(xiàn)自動視覺測試
這篇文章主要介紹了如何使用Playwright對Java API實現(xiàn)自動視覺測試,幫助大家更好的理解和使用Playwright,感興趣的朋友可以了解下2021-01-01

