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

JAVA實現(xiàn)網(wǎng)絡(luò)/本地圖片轉(zhuǎn)BASE64存儲代碼示例

 更新時間:2023年07月28日 11:21:46   作者:小碼農(nóng)~LR  
這篇文章主要給大家介紹了關(guān)于JAVA實現(xiàn)網(wǎng)絡(luò)/本地圖片轉(zhuǎn)BASE64存儲的相關(guān)資料,Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進制數(shù)據(jù)的方法,需要的朋友可以參考下

網(wǎng)絡(luò)圖片轉(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)絡(luò)圖片相差不多的,主要就是讀取圖片流的形式變一下

    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)絡(luò)/本地圖片轉(zhuǎn)BASE64存儲的文章就介紹到這了,更多相關(guān)JAVA圖片轉(zhuǎn)BASE64存儲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis映射文件詳解之mapper.xml文件

    Mybatis映射文件詳解之mapper.xml文件

    本文詳細介紹了Mybatis映射文件的結(jié)構(gòu)、標簽和使用方法,包括mapper元素、標簽的主要屬性如id、parameterType、resultType以及動態(tài)SQL和結(jié)果映射的使用,通過映射文件,可以將數(shù)據(jù)庫表與Java對象映射,支持查詢、插入、更新、刪除等操作,提高了SQL語句的靈活性和可重用性
    2024-09-09
  • Java?精煉解讀時間復(fù)雜度與空間復(fù)雜度

    Java?精煉解讀時間復(fù)雜度與空間復(fù)雜度

    對于一個算法,其時間復(fù)雜度和空間復(fù)雜度往往是相互影響的,當追求一個較好的時間復(fù)雜度時,可能會使空間復(fù)雜度的性能變差,即可能導(dǎo)致占用較多的存儲空間,這篇文章主要給大家介紹了關(guān)于Java時間復(fù)雜度、空間復(fù)雜度的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 一文了解Java?線程池的正確使用姿勢

    一文了解Java?線程池的正確使用姿勢

    線程池在平時的工作中出場率非常高,基本大家多多少少都要了解過,可能不是很全面,本文和大家基于jdk8學(xué)習(xí)下線程池的全面使用,以及分享下使用過程中遇到的一些坑,希望對大家有所幫助
    2022-10-10
  • SpringBoot使用jsr303校驗的實現(xiàn)

    SpringBoot使用jsr303校驗的實現(xiàn)

    這篇文章主要介紹了SpringBoot使用jsr303校驗的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • springboot項目Redis統(tǒng)計在線用戶的實現(xiàn)示例

    springboot項目Redis統(tǒng)計在線用戶的實現(xiàn)示例

    最近做個項目需要統(tǒng)計在線用戶,本文主要介紹了springboot項目Redis統(tǒng)計在線用戶的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • Java通俗易懂系列設(shè)計模式之責(zé)任鏈模式

    Java通俗易懂系列設(shè)計模式之責(zé)任鏈模式

    這篇文章主要介紹了Java通俗易懂系列設(shè)計模式之責(zé)任鏈模式,對設(shè)計模式感興趣的同學(xué),一定要看一下
    2021-04-04
  • IKAnalyzer結(jié)合Lucene實現(xiàn)中文分詞(示例講解)

    IKAnalyzer結(jié)合Lucene實現(xiàn)中文分詞(示例講解)

    下面小編就為大家?guī)硪黄狪KAnalyzer結(jié)合Lucene實現(xiàn)中文分詞(示例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • java使用FastJson解析Json數(shù)據(jù)

    java使用FastJson解析Json數(shù)據(jù)

    本篇文章主要介紹了java使用FastJson解析Json數(shù)據(jù),fastjson 是一個性能極好的用 Java 語言實現(xiàn)的 JSON 解析器和生成器,有興趣的可以了解一下。
    2017-02-02
  • SpringBoot 單元測試JUnit的使用詳解

    SpringBoot 單元測試JUnit的使用詳解

    這篇文章主要介紹了SpringBoot 單元測試JUnit的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • java非官方常用類MessageInfo消息接口示例

    java非官方常用類MessageInfo消息接口示例

    這篇文章主要為大家介紹了java非官方常用類MessageInfo消息接口使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09

最新評論