最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中將base64編碼字符串轉(zhuǎn)換為圖片的代碼

 更新時(shí)間:2023年03月17日 14:46:49   作者:Asurplus  
這篇文章主要介紹了Java中將base64編碼字符串轉(zhuǎn)換為圖片,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前一段時(shí)間,在做攝像頭拍照上傳,攝像頭拍的照片為base64編碼格式的字符串,需要上傳至項(xiàng)目中,則需要使用到將base64編碼字符串轉(zhuǎn)換為圖片

1、將base64編碼字符串轉(zhuǎn)換為圖片的代碼如下 ImageUtil.java:

package util;

import javax.servlet.http.HttpServletRequest;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Base64;
import java.util.UUID;

public class ImageUtil {

	/**
	 * @Description: 將base64編碼字符串轉(zhuǎn)換為圖片
	 * @Author:
	 * @CreateTime:
	 * @param file base64編碼字符串
	 * @param path 圖片路徑-具體到文件
	 * @return
	 */
	public static String generateImage(String file, String path, HttpServletRequest request) {
		// 解密
		try {
			// 項(xiàng)目絕對(duì)路徑
			String savePath = request.getSession().getServletContext().getRealPath("upload");
			// 圖片分類路徑+圖片名+圖片后綴
			String imgClassPath = path.concat(UUID.randomUUID().toString()).concat(".jpg");
			// 解密
			Base64.Decoder decoder = Base64.getDecoder();
			// 去掉base64前綴 data:image/jpeg;base64,
			file = file.substring(file.indexOf(",", 1) + 1, file.length());
			byte[] b = decoder.decode(file);
			// 處理數(shù)據(jù)
			for (int i = 0; i < b.length; ++i) {
				if (b[i] < 0) {
					b[i] += 256;
				}
			}
			// 保存圖片
			OutputStream out = new FileOutputStream(savePath.concat(imgClassPath));
			out.write(b);
			out.flush();
			out.close();
			// 返回圖片的相對(duì)路徑 = 圖片分類路徑+圖片名+圖片后綴
			return imgClassPath;
		} catch (IOException e) {
			return null;
		}
	}
}

補(bǔ)充:Java實(shí)現(xiàn)圖片轉(zhuǎn)base64字符串和圖片互相轉(zhuǎn)換

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
 
import java.io.*;
 
/**
 * @Description:
 * @Author: Han
 * @CreateDate: 2022/9/7
 **/
public class Test010 {
 
    public static void main(String[] args) {
        String base64Str = imageToBase64Str("D:\\SoftWare\\圖片素材\\頭像\\432.jpeg");
        System.out.println(base64Str);
 
        boolean b = base64StrToImage(base64Str, "D:\\002.jpg");
        System.out.println(b);
    }
 
    /**
     * 圖片轉(zhuǎn)base64字符串
     *
     * @param imgFile 圖片路徑
     * @return
     */
    public static String imageToBase64Str(String imgFile) {
        InputStream inputStream = null;
        byte[] data = null;
        try {
            inputStream = new FileInputStream(imgFile);
            data = new byte[inputStream.available()];
            inputStream.read(data);
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 加密
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);
    }
 
    /**
     * base64編碼字符串轉(zhuǎn)換為圖片,并寫入文件
     *
     * @param imgStr base64編碼字符串
     * @param path   圖片路徑
     * @return
     */
    public static boolean base64StrToImage(String imgStr, String path) {
        if (imgStr == null)
            return false;
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            // 解密
            byte[] b = decoder.decodeBuffer(imgStr);
            // 處理數(shù)據(jù)
            for (int i = 0; i < b.length; ++i) {
                if (b[i] < 0) {
                    b[i] += 256;
                }
            }
            //文件夾不存在則自動(dòng)創(chuàng)建
            File tempFile = new File(path);
            if (!tempFile.getParentFile().exists()) {
                tempFile.getParentFile().mkdirs();
            }
            OutputStream out = new FileOutputStream(tempFile);
            out.write(b);
            out.flush();
            out.close();
            return true;
        } catch (Exception e) {
            return false;
        }
    }
 
}

到此這篇關(guān)于Java中將base64編碼字符串轉(zhuǎn)換為圖片的文章就介紹到這了,更多相關(guān)Java base64編碼字符串轉(zhuǎn)換為圖片內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 封裝基礎(chǔ)知識(shí)

    Java 封裝基礎(chǔ)知識(shí)

    這篇文章主要介紹了Java 封裝的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • java實(shí)現(xiàn)波雷費(fèi)密碼算法示例代碼

    java實(shí)現(xiàn)波雷費(fèi)密碼算法示例代碼

    這篇文章主要介紹了java實(shí)現(xiàn)波雷費(fèi)密碼算法示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Java 使用keytool創(chuàng)建CA證書的操作

    Java 使用keytool創(chuàng)建CA證書的操作

    這篇文章主要介紹了Java 使用keytool創(chuàng)建CA證書的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Jmeter多臺(tái)機(jī)器并發(fā)請(qǐng)求實(shí)現(xiàn)壓力性能測(cè)試

    Jmeter多臺(tái)機(jī)器并發(fā)請(qǐng)求實(shí)現(xiàn)壓力性能測(cè)試

    這篇文章主要介紹了Jmeter多臺(tái)機(jī)器并發(fā)請(qǐng)求實(shí)現(xiàn)壓力性能測(cè)試,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • springboot不同環(huán)境使用不同配置文件打包方式

    springboot不同環(huán)境使用不同配置文件打包方式

    這篇文章主要介紹了springboot不同環(huán)境使用不同配置文件打包方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • JavaWeb實(shí)現(xiàn)學(xué)生管理系統(tǒng)的超詳細(xì)過程

    JavaWeb實(shí)現(xiàn)學(xué)生管理系統(tǒng)的超詳細(xì)過程

    學(xué)生信息管理系統(tǒng)是針對(duì)學(xué)校人事處的大量業(yè)務(wù)處理工作而開發(fā)的管理軟件,主要用于學(xué)校學(xué)生信息管理,下面這篇文章主要給大家介紹了關(guān)于JavaWeb實(shí)現(xiàn)學(xué)生管理系統(tǒng)的超詳細(xì)過程,需要的朋友可以參考下
    2023-05-05
  • Java壓縮解壓zip技術(shù)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java壓縮解壓zip技術(shù)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java解壓縮zip - 多個(gè)文件(包括文件夾),對(duì)多個(gè)文件和文件夾進(jìn)行壓縮,對(duì)復(fù)雜的文件目錄進(jìn)行解壓。壓縮方法使用的是可變參數(shù),可以壓縮1到多個(gè)文件
    2017-05-05
  • 詳解Spring框架注解掃描開啟之配置細(xì)節(jié)

    詳解Spring框架注解掃描開啟之配置細(xì)節(jié)

    本篇文章主要介紹了詳解Spring框架注解掃描開啟之配置細(xì)節(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Flink DataStream基礎(chǔ)框架源碼分析

    Flink DataStream基礎(chǔ)框架源碼分析

    這篇文章主要為大家介紹了Flink DataStream基礎(chǔ)框架源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • SpringBoot實(shí)現(xiàn)異步消息處理的代碼示例

    SpringBoot實(shí)現(xiàn)異步消息處理的代碼示例

    在現(xiàn)代應(yīng)用程序中,異步消息處理是一項(xiàng)至關(guān)重要的任務(wù)。它可以提高應(yīng)用程序的性能、可伸縮性和可靠性,同時(shí)也可以提供更好的用戶體驗(yàn),本文將介紹如何使用Spring Boot實(shí)現(xiàn)異步消息處理,并提供相應(yīng)的代碼示例
    2023-06-06

最新評(píng)論

长垣县| 双流县| 安塞县| 长武县| 沾化县| 洞头县| 博罗县| 克拉玛依市| 芷江| 乐至县| 冀州市| 仙居县| 金湖县| 东明县| 临洮县| 疏附县| 隆回县| 上高县| 赣州市| 彭水| 竹北市| 社旗县| 泰兴市| 金湖县| 赤水市| 兰溪市| 利川市| 康乐县| 抚顺市| 都江堰市| 普兰县| 栾川县| 工布江达县| 喀喇| 山东| 湖南省| 班戈县| 永济市| 颍上县| 赤城县| 海安县|