Java實(shí)現(xiàn)圖片轉(zhuǎn)base64完整代碼示例
更新時(shí)間:2023年12月26日 16:12:18 作者:巧克力多拿滋
這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)圖片轉(zhuǎn)base64的相關(guān)資料,Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個(gè)可打印字符來表示二進(jìn)制數(shù)據(jù)的方法,需要的朋友可以參考下
一. 自己實(shí)現(xiàn)byte數(shù)組拷貝
public class Base64Util { // base64圖片 存儲(chǔ)的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){ // 對(duì)原數(shù)組進(jìn)行拷貝擴(kuò)容 baseByte= Arrays.copyOf(baseByte, len + capacity); // 將新數(shù)據(jù)拷貝到新擴(kuò)容的數(shù)組 System.arraycopy(bytes, 0, baseByte, capacity, len); // 數(shù)據(jù)容量增加 capacity += len; } // 獲取base64編碼器 Base64.Encoder encoder = Base64.getEncoder(); // 將字節(jié)數(shù)組轉(zhuǎn)換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){ // 存儲(chǔ)讀取的字節(jié)數(shù)組 data.write(bytes, 0, len); } // 獲取字節(jié)數(shù)組 byte[] baseByte = data.toByteArray(); // 獲取base64編碼器 Base64.Encoder encoder = Base64.getEncoder(); // 將字節(jié)數(shù)組轉(zhuǎn)換base64 String encodeToString = encoder.encodeToString(baseByte); System.out.println("======>>>>>>:" + pre + encodeToString); fileInputStream.close(); } catch (IOException e) { e.printStackTrace(); } } }
總結(jié)
到此這篇關(guān)于Java實(shí)現(xiàn)圖片轉(zhuǎn)base64的文章就介紹到這了,更多相關(guān)Java圖片轉(zhuǎn)base64內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
@RequestBody時(shí)第二個(gè)字母大寫,映射不到的解決
這篇文章主要介紹了@RequestBody時(shí)第二個(gè)字母大寫,映射不到的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07java如何使用zip壓縮實(shí)現(xiàn)讀取寫入
這篇文章主要為大家介紹了java如何使用zip壓縮實(shí)現(xiàn)讀取寫入示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11