MD文件图片base64自动编码
看工具链接请直接将文章拉到最后..
概述
不知道你在使用markdown写文章的时候有没有遇到过这样的烦恼, 文件写完了, 想将写完的文章粘贴到博客的时候, 你满心欢喜的复制粘贴, 但是发现图片根本复制不过去, 是不是很难受, 尤其对于我这种使用markdown写文章, 写完后想把文章发表到多个平台的人来说(毕竟是自己辛辛苦苦写的, 总希望更多的人能看到嘛), 着实麻烦.
那么, 针对这种情况, 有没有什么解决办法呢? 解决办法如下:
- markdown文件中的图片使用在线地址
- 将markdown文件中的图片进行base64编码
先来看看第一种解决办法, 将图片使用在线地址固然可以解决问题, 而且现在很多markdown文件都支持已将将图片进行上传, 但是这个解决办法在我看来有一个问题, 万一那天服务器不能用了, 那 之前辛辛苦苦的各种文章都失去配图了
对于第二种办法, 我觉得挺好, 直接将图片写入到markdown文件中, 给别人发送的时候也不用连着图片的文件夹一起发送了
原来在markdown文件中插入图片, 格式如下:

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

![图片][id]
[id]:data:image/png,base64,iGmCV...
对图片进行base64编码的话, 其实有很多在线的网站可以做到, 但是每一次手动去做这个操作, 还能不能让我好好写文章了, 作为一个程序员, 这怎么能容忍.
到网站搜一下, 有没有能够将markdown文件中的图片一键进行base64编码的工具, 抱歉, 没有找到, 那怎么办呢? 自己写一个呗!
流程分析
其实整体流程还是很简单的:
- 分解出文章中的图片
- 对图片进行base64编码
- 将编码后的字符串替换文章中图片的url
但是, 我又发现一个新的问题, 图片base64编码后的字符串很长, 所以就需要进行图片的压缩, 那就再1-2步骤中间再加一个图片压缩的流程.
程序介绍
本程序允许自行扩充图片的压缩方法, 目前仅支持一种方法, 调用tinypng的接口, 若要使用, 请再文件中的key替换成自己的
当然, 也可以添加自己压缩图片的方法
不写也可以, 会直接对原图片进行编码, 可能字符串会有点长, 嘿嘿
程序链接:
若使用过程中遇到问题或新的需求, 可以给我留言, 或者你直接改也可以.
MD文件图片base64自动编码的更多相关文章
- 解决github pages和github .md文件图片不显示
博客园上传的图片,在github上无法显示. 在github项目下建立img文件夹,放上图片 两种方式 项目绝对路径 https://raw.githubusercontent.com/用户名/项目名 ...
- Git学习:如何在Github的README.MD文件下添加图片
格式如下:  关于图片的绝对路径: 必须把图片上传到github的代码仓库里,再将其图片的网址复制到括号里才可以,不能够直接把图片复制到readme.md文件里面,这 ...
- js 图片base64转file文件的两种方式
js 图片base64转file文件的两种方式 https://blog.csdn.net/yin13037173186/article/details/83302628 //将base64转换为bl ...
- EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象
EF+LINQ事物处理 在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...
- jquery 图片文件转base64 显示
<!DOCTYPE html> <html> <head> <meta name="viewport" content="wid ...
- 【GitHub】给GitHub上的ReadMe.md文件中添加图片怎么做 、 gitHub创建文件夹
1.首先在github上的仓库上,创建一个空的文件夹,用于上传图片 上图看 要点击的按钮是创建新的文件,并不是创建新的文件夹,具体怎么?往下看 这个时候,下面的提交按钮才能提交 2.进入新创建的文件夹 ...
- ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合
一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...
- .md文件的语法
md全称是Macdown,.md文件可以当记事本一样使用,作为编辑软件,还可以自己添加样式,图片,链接等,可以用记事本打开,也可以保持样式排版转换为html文件,语法比较简单..md除了编辑容易的优势 ...
- Markdown语言.md文件
转自:http://www.kuqin.com/shuoit/20141125/343459.html 之前一直在使用github,也在上面分享了不少的项目和Demo,每次创建新项目的时候,使用的都是 ...
随机推荐
- 「MacOS」将网站转换为应用程序,只需一个Unite
unite mac有着非常强大的功能,能够轻松的将网站转换为macOS上的应用程序,除了现代化的网页浏览功能以外,Unite for Mac下载还包括特定于macOS的功能,通知,TouchBar支持 ...
- AcWing 803. 区间合并
网址 https://www.acwing.com/solution/AcWing/content/1590/ 题目描述给定n个区间[l, r]. 合并所有有交集的区间. 输出合并完成后的区间个数. ...
- acwing 848 有向图的拓扑序列
地址 https://www.acwing.com/problem/content/description/850/ 题目描述给定一个n个点m条边的有向图,图中可能存在重边和自环. 请输出任意一个该有 ...
- 2019年最新50道java基础部分面试题(二)
前11题请看上一篇文章 12.静态变量和实例变量的区别? 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加. 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对 ...
- 【洛谷5368】[PKUSC2018] 真实排名(组合数学)
点此看题面 大致题意: 有\(n\)个数字,定义一个数的排名为不小于它的数的个数.现要随机将其中\(k\)个数乘\(2\),求对于每个数有多少种方案使其排名不变. 分类讨论 对于这种题目,我们可以分类 ...
- php 获取代码执行的时间
$start_time = microtime(true); // ... 执行代码 ...$end_time = microtime(true);echo '共'.round($start_time ...
- 手动创建分区以及软硬raid的问题
本文章旨在介绍安装centos7时手动分区问题,及其所对应的软硬raid问题.在新建centos7系统时,需要手动分区时,提供给我们三个选项: 在上图中,默认选项为“Standard Partitio ...
- LeetCode 599: 两个列表的最小索引总和 Minimum Index Sum of Two Lists
题目: 假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. Suppose Andy and Doris want to cho ...
- LeetCode 202: 快乐数 Happy Number
题目: 编写一个算法来判断一个数是不是 "快乐数". 一个 "快乐数" 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直 ...
- efcore adddbcontext
public static IServiceCollection AddDbContext<TContextService, TContextImplementation>( [NotNu ...