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

Java實現base64圖片編碼數據轉換為本地圖片的方法

 更新時間:2018年06月22日 11:51:02   作者:foreverpx  
這篇文章主要介紹了Java實現base64圖片編碼數據轉換為本地圖片的方法,涉及java編碼轉換及圖片文件生成相關操作技巧,需要的朋友可以參考下

本文實例講述了Java實現base64圖片編碼數據轉換為本地圖片的方法。分享給大家供大家參考,具體如下:

項目中用到的把base64圖片數據轉為本地圖片的函數

/**
* 替換html中的base64圖片數據為實際圖片
* @param html
* @param fileRoot 本地路徑
* @param serRoot 服務器路徑
* @return
*/
public static String replaceBase64Image(String html,String fileRoot,String serRoot){
  File file = new File(fileRoot);
  if(!file.exists()){//文件根目錄不存在時創(chuàng)建
   new File(fileRoot).mkdirs();
  }
  String htmlContent = html;
  Pattern pattern = Pattern.compile("\\<img[^>]*src=\"data:image/[^>]*>");
  Matcher matcher = pattern.matcher(html);
  GUIDUtils.init();
  while(matcher.find()){  //找出base64圖片元素
   String str = matcher.group();
   String src = ExStringUtils.substringBetween(str, "src=\"", "\"");//src="..."
   String ext = ExStringUtils.defaultIfEmpty(ExStringUtils.substringBetween(str, "data:image/", ";"), "jpg");//圖片后綴
   String base64ImgData = ExStringUtils.substringBetween(str, "base64,", "\"");//圖片數據
   if(ExStringUtils.isNotBlank(ext)&&ExStringUtils.isNotBlank(base64ImgData)){
    //data:image/gif;base64,base64編碼的gif圖片數據
    //data:image/png;base64,base64編碼的png圖片數據
    if("jpeg".equalsIgnoreCase(ext)){//data:image/jpeg;base64,base64編碼的jpeg圖片數據
     ext = "jpg";
    } else if("x-icon".equalsIgnoreCase(ext)){//data:image/x-icon;base64,base64編碼的icon圖片數據
     ext = "ico";
    }
    String fileName = GUIDUtils.buildMd5GUID(false)+"."+ext;//待存儲的文件名
    String filePath = fileRoot+File.separator+fileName;//圖片路徑
    try {
     convertBase64DataToImage(base64ImgData, filePath);//轉成文件
     String serPath = serRoot+fileName;//服務器地址
     htmlContent = htmlContent.replace(src, serPath);//替換src為服務器地址
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }
  return htmlContent;
}
/**
* 把base64圖片數據轉為本地圖片
* @param base64ImgData
* @param filePath
* @throws IOException
*/
public static void convertBase64DataToImage(String base64ImgData,String filePath) throws IOException {
  BASE64Decoder d = new BASE64Decoder();
  byte[] bs = d.decodeBuffer(base64ImgData);
  FileOutputStream os = new FileOutputStream(filePath);
  os.write(bs);
  os.close();
}

PS:這里再為大家提供幾款base64在線工具供大家參考:

BASE64編碼解碼工具:
http://tools.jb51.net/transcoding/base64

在線圖片轉換BASE64工具:
http://tools.jb51.net/transcoding/img2base64

Base64在線編碼解碼 UTF-8版:
http://tools.jb51.net/tools/base64_decode-utf8.php

Base64在線編碼解碼 gb2312版:
http://tools.jb51.net/tools/base64_decode-gb2312.php

更多關于java相關內容感興趣的讀者可查看本站專題:《Java編碼操作技巧總結》、《Java數學運算技巧總結》、《Java數據結構與算法教程》、《Java字符與字符串操作技巧總結》、《Java操作DOM節(jié)點技巧總結》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關文章

  • 實現一個基于Servlet的hello world程序詳解步驟

    實現一個基于Servlet的hello world程序詳解步驟

    Java Servlet 是運行在 Web 服務器或應用服務器上的程序,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務器上的數據庫或應用程序之間的中間層
    2022-02-02
  • java解析Excel/導入信息到Excel方式

    java解析Excel/導入信息到Excel方式

    這篇文章主要介紹了java解析Excel/導入信息到Excel方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • SpringBoot自動裝配原理詳解

    SpringBoot自動裝配原理詳解

    這篇文章主要詳細介紹了SpringBoot的自動裝配原理,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考一下
    2023-04-04
  • Java圖形用戶界面之列表框

    Java圖形用戶界面之列表框

    列表框通過Swing組件JList產生,其總是在屏幕上占據固定行數的空間。這篇文章主要介紹了java圖形用戶界面之列表框的相關資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • java 值Document解析xml詳細介紹

    java 值Document解析xml詳細介紹

    這篇文章主要介紹了java 值Document解析xml詳細介紹的相關資料,需要的朋友可以參考下
    2017-05-05
  • Java虛擬機處理異常的最佳方式

    Java虛擬機處理異常的最佳方式

    這篇文章主要給大家介紹了關于Java虛擬機處理異常的最佳方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • 解決SpringBoot配置文件項目重啟出現亂碼的問題

    解決SpringBoot配置文件項目重啟出現亂碼的問題

    最近在創(chuàng)建了SpringBoot項目后往配置文件中寫了相關的系統(tǒng)配置,并且在上面加了中文注釋,但是在重啟項目或開機重啟后遇到了注釋亂碼的情況,下面這篇文章主要給大家介紹一下如何解決SpringBoot配置文件項目重啟出現亂碼的問題,需要的朋友可以參考下
    2023-06-06
  • spring boot 常見http請求url參數獲取方法

    spring boot 常見http請求url參數獲取方法

    這篇文章主要介紹了spring boot 常見http請求url參數獲取,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Spring cloud Feign 深度學習與應用詳解

    Spring cloud Feign 深度學習與應用詳解

    這篇文章主要介紹了Spring cloud Feign 深度學習與應用詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-06-06
  • springboot實現敏感字段加密存儲解密顯示功能

    springboot實現敏感字段加密存儲解密顯示功能

    這篇文章主要介紹了springboot實現敏感字段加密存儲,解密顯示,通過mybatis,自定義注解+AOP切面,Base64加解密方式實現功能,本文通過代碼實現給大家介紹的非常詳細,需要的朋友可以參考下
    2022-02-02

最新評論

太原市| 乌拉特后旗| 胶州市| 泌阳县| 石门县| 宁远县| 龙游县| 崇礼县| 嘉兴市| 朝阳区| 海伦市| 新昌县| 广丰县| 胶州市| 乌拉特后旗| 富锦市| 山东省| 吐鲁番市| 佳木斯市| 密山市| 江油市| 于都县| 新余市| 泸水县| 固原市| 沈丘县| 南雄市| 丰县| 辛集市| 舟山市| 成武县| 健康| 延寿县| 惠水县| 通化市| 天津市| 华亭县| 莆田市| 罗源县| 阳山县| 吉木萨尔县|