国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

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

2024-07-14 08:41:19
字體:
來源:轉載
供稿:網友

本文實例講述了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()){//文件根目錄不存在時創建   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();}

 

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


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芦溪县| 洛阳市| 澎湖县| 黄梅县| 广安市| 辽阳县| 大新县| 岳阳县| 曲沃县| 正阳县| 庄浪县| 大庆市| 寿光市| 拉孜县| 延边| 嘉祥县| 民丰县| 吕梁市| 松潘县| 海阳市| 黄大仙区| 封丘县| 娄烦县| 江油市| 来宾市| 五河县| 永平县| 高台县| 游戏| 新乡市| 邛崃市| 镇赉县| 丰原市| 青河县| 灵武市| 郯城县| 广东省| 崇左市| 昌宁县| 灵寿县| 于都县|