国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永福县| 维西| 营口市| 潍坊市| 清水县| 惠来县| 广水市| 崇文区| 长岛县| 大新县| 防城港市| 封开县| 陆川县| 三门县| 徐水县| 灌云县| 文安县| 石渠县| 福清市| 宁晋县| 赣州市| 宣威市| 泰州市| 富民县| 左贡县| 商丘市| 韶关市| 洱源县| 瓮安县| 千阳县| 翁源县| 卢氏县| 柳河县| 五台县| 新化县| 安平县| 赤城县| 葵青区| 葵青区| 沙坪坝区| 中宁县|