欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • dubbo3 filter(過濾器)如何自定義過濾器

    dubbo3 filter(過濾器)如何自定義過濾器

    dubbo3filter(過濾器)類似于javaweb中的filter和springmvc中的intercaptor,用于在請(qǐng)求發(fā)送前或到達(dá)前進(jìn)行預(yù)處理工作,完成限流和監(jiān)控,在dubbo中,過濾器運(yùn)行在consumer和provider兩端,分別在調(diào)用鏈中執(zhí)行
    2025-03-03
  • @RequestBody時(shí)第二個(gè)字母大寫,映射不到的解決

    @RequestBody時(shí)第二個(gè)字母大寫,映射不到的解決

    這篇文章主要介紹了@RequestBody時(shí)第二個(gè)字母大寫,映射不到的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java利用jacob將word轉(zhuǎn)pdf

    java利用jacob將word轉(zhuǎn)pdf

    這篇文章主要為大家詳細(xì)介紹了java利用jacob將word轉(zhuǎn)pdf,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 淺析JVM的垃圾回收器

    淺析JVM的垃圾回收器

    這篇文章主要介紹了JVM垃圾回收器的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java虛擬機(jī)的相關(guān)知識(shí),感興趣的朋友可以了解下
    2020-11-11
  • java如何使用zip壓縮實(shí)現(xiàn)讀取寫入

    java如何使用zip壓縮實(shí)現(xiàn)讀取寫入

    這篇文章主要為大家介紹了java如何使用zip壓縮實(shí)現(xiàn)讀取寫入示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Spring-Boot框架初步搭建

    Spring-Boot框架初步搭建

    本篇文章主要介紹了Spring-Boot框架初步搭建,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • java 中平方根(sqrt)算法 的實(shí)例詳解

    java 中平方根(sqrt)算法 的實(shí)例詳解

    這篇文章主要介紹了java 中平方根(sqrt)算法 的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Java實(shí)現(xiàn)ATM取款機(jī)程序

    Java實(shí)現(xiàn)ATM取款機(jī)程序

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)ATM取款機(jī)程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java虛擬機(jī)堆內(nèi)存溢出的原因和解決方法

    Java虛擬機(jī)堆內(nèi)存溢出的原因和解決方法

    在Java開發(fā)中,內(nèi)存溢出(OutOfMemoryError)是一個(gè)常見的問題,尤其是在處理大量數(shù)據(jù)或長時(shí)間運(yùn)行的應(yīng)用時(shí),本文將通過一個(gè)簡(jiǎn)單的示例,展示如何通過JVM參數(shù)和代碼分析來理解和解決內(nèi)存溢出問題,需要的朋友可以參考下
    2024-10-10
  • Spring解密之XML解析與Bean注冊(cè)示例詳解

    Spring解密之XML解析與Bean注冊(cè)示例詳解

    這篇文章主要給大家介紹了關(guān)于Spring解密之XML解析與Bean注冊(cè)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01

最新評(píng)論