日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java编写之jpg图片与base64编码之间的转换

發(fā)布時(shí)間:2025/7/25 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java编写之jpg图片与base64编码之间的转换 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

/**
* @author zyq
* 將網(wǎng)絡(luò)圖片進(jìn)行Base64位編碼
* @param imgUrl
*
*/
public static String encodeWebImageToBase64(URL imgUrl){ //傳入圖片url,將網(wǎng)絡(luò)圖片編碼為base64編碼
String webArray;
ByteArrayOutputStream outputStream = null; //字節(jié)數(shù)組流,可以捕獲內(nèi)存緩沖區(qū)的數(shù)據(jù),轉(zhuǎn)換成字節(jié)數(shù)組(拓展:ByteArrayInputStream: 可以將字節(jié)數(shù)組轉(zhuǎn)化為輸入流)
try {
BufferedImage bufferedImage = ImageIO.read(imgUrl); //Image是一個(gè)抽象列,BufferedImage是Image的實(shí)現(xiàn),Image和BufferedImage的主要作用就是將一副圖片加載到內(nèi)存 中
outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage,"jpg",outputStream);//將BufferedImage對(duì)象直接寫出指定輸出流outputStream,圖片格式為jpg

}catch (MalformedURLException e){ //URL協(xié)議、格式或者路徑錯(cuò)誤異常
e.printStackTrace();
}catch (IOException e1){ //輸入輸出異常
e1.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder(); //BASE64Encoder,字符串加密算法
webArray = encoder.encode(outputStream.toByteArray()); //編碼為base64編碼(方法參數(shù)為字節(jié)數(shù)組),其中outputStream.toByteArray()用于獲取內(nèi)存緩沖中的數(shù)據(jù),并轉(zhuǎn)換 為字節(jié)數(shù)組
return webArray;
}

/**
* @author zyq
* 將本地圖片進(jìn)行Base64位編碼
* @param imageFile
*/
public static String encodeLocImageToBase64(File imageFile){
String locArray;
ByteArrayOutputStream outputStream = null;
try {
BufferedImage bufferedImage = ImageIO.read(imageFile);
outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage,"jpg",outputStream);

}catch (MalformedURLException e1){
e1.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder();
locArray = encoder.encode(outputStream.toByteArray());
return locArray;
}

/**
* @author zyq
* 將base64編碼的圖片進(jìn)行解碼顯示,并保存在指定路徑
* @param base64code
* @param imagePath
* @param imageName
*/
public static void decodeBase64ToImage(String base64code,String imagePath,String imageName){

BASE64Decoder decoder = new BASE64Decoder(); //BASE64Decoder,base64編碼解碼算法,解碼為字節(jié)數(shù)組
try {
FileOutputStream write = new FileOutputStream(new File(imagePath + imageName)); //文件輸出流,是用于將數(shù)據(jù)寫入File或 FileDescriptor的輸出流,其中
File(imagePath + imageName)創(chuàng)建文件,參數(shù)為文件名(文件路徑)
byte[] decoderBytes = decoder.decodeBuffer(base64code); //解碼,方法參數(shù)為base64加密編碼
write.write(decoderBytes); //decoderBytes數(shù)組寫入文件
write.close(); //關(guān)閉此文件輸出流并釋放與此流有關(guān)的所有系統(tǒng)資源
}catch (IOException e){
e.printStackTrace();
}
}

轉(zhuǎn)載于:https://www.cnblogs.com/jjlyx/p/7485413.html

總結(jié)

以上是生活随笔為你收集整理的java编写之jpg图片与base64编码之间的转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。