Java實現(xiàn)圖片轉base64完整代碼示例
更新時間:2023年12月26日 16:12:18 作者:巧克力多拿滋
這篇文章主要給大家介紹了關于Java實現(xiàn)圖片轉base64的相關資料,Base64是網(wǎng)絡上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進制數(shù)據(jù)的方法,需要的朋友可以參考下
一. 自己實現(xiàn)byte數(shù)組拷貝
public class Base64Util {
// base64圖片 存儲的byte數(shù)組
private byte[] baseByte= new byte[0];
public static void main(String[] args) {
Base64Util base64Util = new Base64Util();
base64Util.base64Encoding();
}
private void base64Encoding(){
try {
// 從本地resource目錄下獲取圖片
ClassPathResource classPathResource = new ClassPathResource("/images/e88b27550495d06a041a7854fcd07b8c.jpg");
// base64圖片前綴
String pre = "data:image/jpg;base64,";
// 讀取圖片
FileInputStream fileInputStream = new FileInputStream(classPathResource.getFile());
// 讀取字節(jié)長度
int len = 0;
// baseByte數(shù)組的容量
int capacity = 0;
byte [] bytes = new byte[1024];
while ((len = fileInputStream.read(bytes)) != -1){
// 對原數(shù)組進行拷貝擴容
baseByte= Arrays.copyOf(baseByte, len + capacity);
// 將新數(shù)據(jù)拷貝到新擴容的數(shù)組
System.arraycopy(bytes, 0, baseByte, capacity, len);
// 數(shù)據(jù)容量增加
capacity += len;
}
// 獲取base64編碼器
Base64.Encoder encoder = Base64.getEncoder();
// 將字節(jié)數(shù)組轉換base64
String encodeToString = encoder.encodeToString(baseByte);
System.out.println("======>>>>>>:" + pre + encodeToString);
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
二. 使用ByteArrayOutputStream
public class Base64Util {
public static void main(String[] args) {
Base64Util base64Util = new Base64Util();
base64Util.base64Encoding();
}
private void base64Encoding(){
try {
// 從本地resource目錄下獲取圖片
ClassPathResource classPathResource = new ClassPathResource("/images/e88b27550495d06a041a7854fcd07b8c.jpg");
// base64圖片前綴
String pre = "data:image/jpg;base64,";
// 讀取圖片
FileInputStream fileInputStream = new FileInputStream(classPathResource.getFile());
// 讀取字節(jié)長度
int len = 0;
byte [] bytes = new byte[1024];
while ((len = fileInputStream.read(bytes)) != -1){
// 存儲讀取的字節(jié)數(shù)組
data.write(bytes, 0, len);
}
// 獲取字節(jié)數(shù)組
byte[] baseByte = data.toByteArray();
// 獲取base64編碼器
Base64.Encoder encoder = Base64.getEncoder();
// 將字節(jié)數(shù)組轉換base64
String encodeToString = encoder.encodeToString(baseByte);
System.out.println("======>>>>>>:" + pre + encodeToString);
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}總結
到此這篇關于Java實現(xiàn)圖片轉base64的文章就介紹到這了,更多相關Java圖片轉base64內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Eclipse中@SpringBootTest注解報紅的解決方案
這篇文章主要介紹了Eclipse中@SpringBootTest注解報紅的解決方案,文中給出了原因分析和解決方案,并通過圖文結合的方式介紹的非常詳細,需要的朋友可以參考下2024-03-03
Java中Class.forName()在代碼上無法執(zhí)行報錯NotFound的解決過程
這段文章主要討論了ClassNotFoundException的錯誤原因,指出問題源于文件夾命名錯誤,應命名為WEB-INF而非WEB-INFO,并強調了正確配置的重要性2026-06-06
MybatisX-Generator不生成domain文件夾的問題及解決
在使用MybatisX-Generator生成數(shù)據(jù)庫表實體時,如果發(fā)現(xiàn)沒有生成domain文件夾以及User.java文件,是因為MybatisX版本更新,最新版需要在options里額外勾選model才能生成domain,勾選model并點擊finish后,成功生成domain文件夾及User.java文件2025-01-01
JPA?通過Specification如何實現(xiàn)復雜查詢
這篇文章主要介紹了JPA?通過Specification如何實現(xiàn)復雜查詢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11

