markdown本地图片转base64嵌入

markdown本地图片转base64嵌入

自己偶尔也写博客,但插入图片实在是一大难事,本身用的是typora离线来写markdown,图片也大多是本地的,每次将markdown复制到博客园编辑器,图片都不能显示(因为这里要求是网络地址而不是本地地址),来回拖动图片很打击我写作的积极性,所以我尝试写代码将markdown中的本地图片转为base64存储在markdown文件中,这样只要复制markdown源代码到博客园在线编辑器就可以了

花了半个小时写的(熟悉了一下正则表达式和文件操作),不足之处轻喷,欢迎提出建议

import base64
import re
def phtot_base64(address):#将地址为address的图片转为base64字符串
    with open(address,"rb") as photo:
        pb=base64.b64encode(photo.read())
        return str(pb)[2:-1]
target=input("请输入目标markdown文件地址");#例如:D:\Markdown\Note\Machine learning\误差与噪音.md(两侧一定不要加引号)
target=target.replace("\\","/")
with open(target,"r",encoding="utf-8") as md:#打开目标文件
    transformed=open(target[0:-3]+"_transformed.md","w",encoding="utf-8")#在目标文件同一文件夹地址下产生转换后文件
    for a in md:
        if(re.match("!\[[^]]*\].*",a)):#匹配到图片格式
            address=re.search("(?<=\()[^\)]*",a).group().replace("\\","/")#提取图片地址并且将反斜杠转换为斜杠
            a="![avatar](data:image/png;base64,"+phtot_base64(address)+")\n"#将图片格式转为base64并加上回车
        transformed.write(a)#写入一行
    transformed.close()

原文地址:https://www.cnblogs.com/redo19990701/p/11426059.html

时间: 2024-08-15 01:30:26

markdown本地图片转base64嵌入的相关文章

本地图片转base64

<!DOCTYPE html><html><head> <title></title></head><body> <script type="text/javascript"> function ToBase64() { /*转换base64*/ var img = document.getElementById('upload') var imgFile = new FileReader(

本地与在线图片转Base64及图片预览

查看效果:http://sandbox.runjs.cn/show/tgvbo9nq 本地图片转Base64(从而可以预览图片): function localImgLoad() { var src = this.files[0]; var self = $(this); var read = new FileReader(); read.onload = function(e) { var html = "<img src=" + e.target.result + "

JAVA将图片(本地或者网络资源)转为Base64字符串,将base64字符串存储为本地图片

网络资源代码 import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder

图片和base64相互转化

1 # -*- coding: utf-8 -*- 2 import urllib2 as ulb 3 import base64 4 5 6 #用urllib2库链接网络图像 7 response=ulb.Request('http://s14.sinaimg.cn/mw690/5562b044tx6BkMgSR09ad&690') 8 fp=ulb.urlopen(response).read() #打开网络图像文件句柄 9 #把图片转化为base64形式 10 a=base64.b64en

微信小程序插入背景图片(将图片转为base64)

关于在微信小程序中插入背景图片,是不能将本地文件直接作为background-image的,要么使用网址链接,要么使用base64,这,考虑到小程序的大小问题,毕竟大小限制为2M的小程序是不可能有多余的空间留给background-image的(准确地来说是在样式文件中需要使用图片时不能直接用本地文件,在wxml中可以?). 使用网址链接简单,直接找到需要的图片,一般右键都会有复制图片链接之类的 说一下将本地图片转为base64的操作(当然,并是不所有的图片转base64都合适,这比较适用于那个

PHP将Base64图片转换为本地图片并保存

本文出至:新太潮流网络博客 /** * [将Base64图片转换为本地图片并保存] * @E-mial [email protected] * @TIME 2017-04-07 * @WEB http://blog.iinu.com.cn * @param [Base64] $base64_image_content [要保存的Base64] * @param [目录] $path [要保存的路径] */ function base64_image_content($base64_image_c

Hexo中如何用Markdown插入本地图片

虽然在官方语法中,Markdown插入图片的格式是这样的: ![Alt text](/path/to/img.jpg) 然而,如果你用了Hexo框架,那你得小心了. 为什么要用Hexo,Octopress之类的框架呢?无非是为了让页面更加丰富多彩,以及让操作更加简便.这些用jeklly直接来做是十分繁琐,费时的. 好了,回归正题.首先,你不可能在网页里用绝对路径,这样怎么部署到服务器上呢?所以必定是相对路径.Markdown本来的语法中,只要img和md文件的相对路径是对的就行,然而Hexo不知

Atitit.&#160;html&#160;使用js显示本地图片的设计方案.doc

Atitit. html 使用js显示本地图片的设计方案.doc 1.  Local mode  是可以的..web模式走有的不能兰.1 2. IE8.0 显示本地图片 img.src=本地图片路径无效的解决方案1 2.1. div来完成 .filter1 2.2. URL.createObjectURL (html5 api  ma sida)2 2.3. Css 背景(吗四大)2 2.4. 这是Data URI scheme (base64).2 3. --code2 4. 参考2 1.  

MarkDown添加图片的三种方式【华为云技术分享】

Markdown插图片有三种方法,各种Markdown编辑器的插图方式也都包含在这三种方法之内. 插图最基础的格式就是: ![Alt text](图片链接 "optional title") 插入本地图片 只需要在基础语法的括号中填入图片的位置路径即可,支持绝对路径和相对路径. 例如: ![avatar](/home/picture/1.png) 插入网络图片 只需要在基础语法的括号中填入图片的网络链接即可,现在已经有很多免费/收费图床和方便传图的小工具可选. 例如: ![avatar