java實(shí)現(xiàn)圖片轉(zhuǎn)base64字符串 java實(shí)現(xiàn)base64字符串轉(zhuǎn)圖片
java 圖片轉(zhuǎn)base64字符串、base64字符串轉(zhuǎn)圖片,具體內(nèi)容如下
1. 圖片轉(zhuǎn)base64字符串:
/**
* 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;
}
}
2. base64字符串轉(zhuǎn)圖片:
/**
* 圖片轉(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);
}
3. 測試:
public static void main(String[] args) {
String base64Str = imageToBase64Str("D:/pic/001.jpg");
System.out.println(base64Str);
boolean b = base64StrToImage(base64Str, "D:/pic/temp/002.jpg");
System.out.println(b);
}
效果圖:


以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java實(shí)現(xiàn)圖片與Base64編碼互轉(zhuǎn)
- java將圖片轉(zhuǎn)為base64返回給前端
- Java處理圖片實(shí)現(xiàn)base64編碼轉(zhuǎn)換
- Java 8實(shí)現(xiàn)圖片BASE64編解碼
- Java中將base64編碼字符串轉(zhuǎn)換為圖片的代碼
- Java 處理圖片與base64 編碼的相互轉(zhuǎn)換的示例
- java實(shí)現(xiàn)后臺處理base64圖片還原為文件
- Java基于Base64實(shí)現(xiàn)編碼解碼圖片文件
- Java實(shí)現(xiàn)圖片轉(zhuǎn)base64完整代碼示例
相關(guān)文章
一分鐘掌握J(rèn)ava?ElasticJob分布式定時(shí)任務(wù)
ElasticJob?是面向互聯(lián)網(wǎng)生態(tài)和海量任務(wù)的分布式調(diào)度解決方案,本文主要通過簡單的示例帶大家深入了解ElasticJob分布式定時(shí)任務(wù)的相關(guān)知識,需要的可以參考一下2023-05-05
Spring中的@Transactional事務(wù)失效場景解讀
這篇文章主要介紹了Spring中的@Transactional事務(wù)失效場景解讀,如果Transactional注解應(yīng)用在非public 修飾的方法上,Transactional將會(huì)失效此方法會(huì)檢查目標(biāo)方法的修飾符是否為 public,不是 public則不會(huì)獲取@Transactional 的屬性配置信息,需要的朋友可以參考下2023-12-12
MyBatis-Plus中通用枚舉的實(shí)現(xiàn)
表中的有些字段值是固定的此時(shí)我們可以使用MyBatis-Plus的通用枚舉來實(shí)現(xiàn),本文主要介紹了MyBatis-Plus中通用枚舉的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(25)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07
Idea使用插件實(shí)現(xiàn)逆向工程搭建SpringBoot項(xiàng)目的圖文教程
這篇文章主要介紹了Idea使用插件實(shí)現(xiàn)逆向工程搭建SpringBoot項(xiàng)目,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

