看工具链接请直接将文章拉到最后..

概述

不知道你在使用markdown写文章的时候有没有遇到过这样的烦恼, 文件写完了, 想将写完的文章粘贴到博客的时候, 你满心欢喜的复制粘贴, 但是发现图片根本复制不过去, 是不是很难受, 尤其对于我这种使用markdown写文章, 写完后想把文章发表到多个平台的人来说(毕竟是自己辛辛苦苦写的, 总希望更多的人能看到嘛), 着实麻烦.

那么, 针对这种情况, 有没有什么解决办法呢? 解决办法如下:

  1. markdown文件中的图片使用在线地址
  2. 将markdown文件中的图片进行base64编码

先来看看第一种解决办法, 将图片使用在线地址固然可以解决问题, 而且现在很多markdown文件都支持已将将图片进行上传, 但是这个解决办法在我看来有一个问题, 万一那天服务器不能用了, 那 之前辛辛苦苦的各种文章都失去配图了

对于第二种办法, 我觉得挺好, 直接将图片写入到markdown文件中, 给别人发送的时候也不用连着图片的文件夹一起发送了

原来在markdown文件中插入图片, 格式如下:

![图片](url)

如果使用图片的base64编码, 如下:

![图片](data:image/png,base64,iGmCV...)
![图片][id]
[id]:data:image/png,base64,iGmCV...

对图片进行base64编码的话, 其实有很多在线的网站可以做到, 但是每一次手动去做这个操作, 还能不能让我好好写文章了, 作为一个程序员, 这怎么能容忍.

到网站搜一下, 有没有能够将markdown文件中的图片一键进行base64编码的工具, 抱歉, 没有找到, 那怎么办呢? 自己写一个呗!

流程分析

其实整体流程还是很简单的:

  1. 分解出文章中的图片
  2. 对图片进行base64编码
  3. 将编码后的字符串替换文章中图片的url

但是, 我又发现一个新的问题, 图片base64编码后的字符串很长, 所以就需要进行图片的压缩, 那就再1-2步骤中间再加一个图片压缩的流程.

程序介绍

本程序允许自行扩充图片的压缩方法, 目前仅支持一种方法, 调用tinypng的接口, 若要使用, 请再文件中的key替换成自己的

当然, 也可以添加自己压缩图片的方法

不写也可以, 会直接对原图片进行编码, 可能字符串会有点长, 嘿嘿

程序链接:

  1. 码云: https://gitee.com/hujingnb/markdownImage

若使用过程中遇到问题或新的需求, 可以给我留言, 或者你直接改也可以.

MD文件图片base64自动编码的更多相关文章

  1. 解决github pages和github .md文件图片不显示

    博客园上传的图片,在github上无法显示. 在github项目下建立img文件夹,放上图片 两种方式 项目绝对路径 https://raw.githubusercontent.com/用户名/项目名 ...

  2. Git学习:如何在Github的README.MD文件下添加图片

    格式如下: ![image](图片的绝对路径) 关于图片的绝对路径: 必须把图片上传到github的代码仓库里,再将其图片的网址复制到括号里才可以,不能够直接把图片复制到readme.md文件里面,这 ...

  3. js 图片base64转file文件的两种方式

    js 图片base64转file文件的两种方式 https://blog.csdn.net/yin13037173186/article/details/83302628 //将base64转换为bl ...

  4. EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象

    EF+LINQ事物处理   在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...

  5. jquery 图片文件转base64 显示

    <!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...

  6. 【GitHub】给GitHub上的ReadMe.md文件中添加图片怎么做 、 gitHub创建文件夹

    1.首先在github上的仓库上,创建一个空的文件夹,用于上传图片 上图看 要点击的按钮是创建新的文件,并不是创建新的文件夹,具体怎么?往下看 这个时候,下面的提交按钮才能提交 2.进入新创建的文件夹 ...

  7. ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合

    一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...

  8. .md文件的语法

    md全称是Macdown,.md文件可以当记事本一样使用,作为编辑软件,还可以自己添加样式,图片,链接等,可以用记事本打开,也可以保持样式排版转换为html文件,语法比较简单..md除了编辑容易的优势 ...

  9. Markdown语言.md文件

    转自:http://www.kuqin.com/shuoit/20141125/343459.html 之前一直在使用github,也在上面分享了不少的项目和Demo,每次创建新项目的时候,使用的都是 ...

随机推荐

  1. 【cf1272】F. Two Bracket Sequences

    传送门 题意: 给出\(s,t\)两个合法括号序列,现在找到一个长度最小的合法的序列\(p\),使得\(s,t\)都为其子序列. 思路: 考虑\(dp:dp[i][j][d]\)表示第一个串在\(i\ ...

  2. A bean with that name has already been defined in class path resource [org/springframework/transaction/annotation/ProxyTransactionManagementConfiguration.class] and overriding is disabled

    2019-12-19 13:26:17.594 WARN [main] o.s.boot.web.servlet.context.AnnotationConfigServletWebServerApp ...

  3. Make Them Odd

    time limit per test3 secondsmemory limit per test256 megabytesinput: standard inputoutput: standard ...

  4. Java并发编程:Java中的锁和线程同步机制

    锁的基础知识 锁的类型 锁从宏观上分类,只分为两种:悲观锁与乐观锁. 乐观锁 乐观锁是一种乐观思想,即认为读多写少,遇到并发写的可能性低,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新 ...

  5. TensorFlow中实现RNN,彻底弄懂time_step

    这篇博客不是一篇讲解原理的博客,这篇博客主要讲解tnesorlfow的RNN代码结构,通过代码来学习RNN,以及讲解time_steps,如果这篇博客没有让你明白time_steps,欢迎博客下面评论 ...

  6. 一篇文章弄懂flex布局

     壹 ❀ 引 谈到flex布局,我不知道有多少人跟我一样,在本能的想到justify-content:center与align-items:center两条属性之后,除此之外的其它属性居然显得格外陌生 ...

  7. 多网卡做team

    简明的说,就是把多个物理网卡绑定成一个逻辑上的网卡,以增加带宽,或者实现主备功能,增加硬件冗余,以实现更高的系统稳定性,目前主要有bond和team两种做法,而bond主要是针对双网卡的情况来说,而t ...

  8. 划词标注1——使用svg绘制换行文本并自动识别库中字典数据

    业务需求 给出一段文本,自动识别出文本中包含的关键字信息,关键字是库里已知的数据,根据类型的不同显示出不同的颜色 业务分析 1)采用css:文本识别出来后,根据识别出的文本更改对应文本的dom,通过更 ...

  9. ARM64的内核栈、用户栈、寄存器上下文

    1. 内核栈的分配,即thread_info的分配,是在do_fork->dup_task_struct中分配(默认为2个pages),并赋值给task_struct->stack: 2. ...

  10. [01]从零开始学 ASP.NET Core 与 EntityFramework Core 课程介绍

    从零开始学 ASP.NET Core 与 EntityFramework Core 课程介绍 本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP) 文章会随着版本进行更新,关注我获取最新 ...