怎么做网站界面分析,二级消防工程师,某种网站怎么找,荆门网站开发有哪些Typora导出html文件图片自动转换成base64 一、出现问题二、解决方案三、编码实现3.1.创建Java项目3.2.代码3.3.打包成Jar包 四、如何使用endl 一、出现问题 typora 导出 html 的时候必须带有原图片#xff0c;不方便交流学习#xff0c;文件太多显得冗余#xff0c;只有将图… Typora导出html文件图片自动转换成base64 一、出现问题二、解决方案三、编码实现3.1.创建Java项目3.2.代码3.3.打包成Jar包 四、如何使用endl 一、出现问题 typora 导出 html 的时候必须带有原图片不方便交流学习文件太多显得冗余只有将图片转化为base64格式一个html文件。 本文档下载链接https://www.lanzv.com/i0XYv1myf3ne 密码:bay7 Jar包下载https://www.lanzv.com/iekaA1myf3ja 密码:444r Java代码下载https://www.lanzv.com/iPon51myf3kb 密码:a1y5 typora最新版本及激活码https://www.lanzv.com/b05evh1aj 密码:3jaa
二、解决方案
编写代码将图片转换成base64格式打包成可执行的jar包电脑需要是jdk 环境执行jar包原来的图片转换成base64格式导出成一个html文件【文件可能比较大】
三、编码实现
3.1.创建Java项目 3.2.代码
本文档下载链接https://www.lanzv.com/i0XYv1myf3ne 密码:bay7 Jar包下载https://www.lanzv.com/iekaA1myf3ja 密码:444r Java代码下载https://www.lanzv.com/iPon51myf3kb 密码:a1y5
package com.xiaoxiao.util;import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Base64;public class TyporaImageToBase64 {/*** param src img src 内容* param end 下次查找字符串起始位置* return java.lang.String* throws* description 递归执行查找同一行字符串多个 img 标签*/public static String execute(String src, int end) {String result matchImg(src, end);if (result.isEmpty()) {return src;} else {String[] split result.split(,);String s1 fileToBase64(split[0]);if (s1.isEmpty()) {return src;} else {String replace src.replace(split[0], s1);return execute(replace, Integer.valueOf(split[1]) 20);}}}/*** param str 原始字符串* return java.lang.String* Description 匹配 img src 内容**/public static String matchImg(String str, int start) {int img str.indexOf(img, start); // 起始位置if (img -1) {return ;}int l str.indexOf(\, img) 1; // src 左侧 双引号int r str.indexOf(\, l); // src 右侧 双引号String substring str.substring(l, r);if (substring.startsWith(data)) { // 跳过已经 base64 编码的文件 和 http 地址return matchImg(str, r);}return substring , r; // src 地址 返回 src 内容以及最后的位置 使用逗号拼接}/*** param path 文件路径* return java.lang.String* Description 文件转 base64**/public static String fileToBase64(String path) {File file new File(path);if (!file.exists()) {System.err.printf(File not exist!);return ;}byte bytes[] null;try (FileInputStream fileInputStream new FileInputStream(path);) {bytes new byte[fileInputStream.available()];fileInputStream.read(bytes);} catch (Exception e) {e.printStackTrace();System.err.println(Image convert base64 fail!);}// 文件后缀处理String suffix getSuffix(path);return data:image/ suffix ;base64, Base64.getEncoder().encodeToString(bytes);}/*** param str* return java.lang.String* throws* description 获取文件后缀*/public static String getSuffix(String str) {return str.substring(str.lastIndexOf(.) 1);}// 主方法public static void main(String[] args) {// 获取文件路径if (args.length 0) {System.out.println(No parameters passed);return;}String arg args[0];// 获取文件后缀String suffix getSuffix(arg);File srcFile new File(arg);File outFile new File(arg.replace(. suffix, ).concat(-base64.).concat(suffix));try (BufferedReader bfr new BufferedReader(new InputStreamReader(new FileInputStream(srcFile), StandardCharsets.UTF_8));BufferedWriter bfw new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),StandardCharsets.UTF_8))) {String len ;while ((len bfr.readLine()) ! null) {String result ;if (len.indexOf(img) ! -1) {result execute(len, 0);}if (result.equals()) {bfw.write(len);} else {bfw.write(result);}}//必须关闭IO流否则无法操作文件bfr.close();bfw.close();//成功删除转换成功的源文件boolean resultDelete srcFile.delete();System.out.println(Sorce file delete finish, resultDelete);boolean reultRename outFile.renameTo(srcFile);System.out.println(Out file rename finish, reultRename);System.out.println(File convert success!);} catch (Exception e) {e.printStackTrace();System.out.println(error);System.out.println(File convert fail!);}}
}
3.3.打包成Jar包 四、如何使用 找到自己的jar包路径 java -jar 【TyporaImageToBase64.jar路径】 ${outputPath}java -jar D:\JAVA\Typora\TyporaImageToBase64.jar ${outputPath}endl