MARKDOWN-插入图片

2023-05-16

MARKDOWN-插入图片

1 markdown是什么

Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯(John Gruber),它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的HTML文档。
 

2 markdown 插入图片的三种方式

2.1 插入本地图片

只需要在markdown插入图片语法的括号中填入图片本地路径:

![Alt text](本地图片位置路径)
eg: ![avatar](C:\Users\pgong\Pictures\30972457.png)

Alt text:图片的Alt标签,用来描述图片的关键词,可以不写。
缺点:不灵活不好分享,本地图片的路径更改或丢失都会造成markdown文件调不出图。

2.2 插入网络图片

只需要在markdown插入图片语法的括号中填入图片网络链接:

![Alt text](网络图片链接)
eg: ![avatar](http://baidu.com/pic/doge.png)

缺点:图片存在网络服务器上,非常依赖网络。

2.3 把图片存入markdown文件

鉴于前两种方法存在的问题,现在推荐第三种方法:首先把图片转换成一段 base64 字符串,然后把字符填入 markdown 插入图片基础语法中的括号里。基础用法如下:

![Alt text](iVBORw0K......)

但是你会发现,base64字符串很长,这么长一段字符串横在文档中间,一定十分影响文档编辑体验,所以推荐如下方式:把大段的 base64 字符放在末尾,通过一个 ID 来调用:

![avatar][base64str]
[base64str]:data:image/png;base64,iVBORw0K......

3 如何得到图片的 base64 字符串呢

python 代码如下:

python image2base64.py  "图片的本地路径"
eg: python image2base64.py "C:\Users\pgong\Pictures\30972457.png"
# 会在图片目录下得到一个与图片名相同 base64 的 .txt 文件
# coding = UTF-8
# image2base64.py

"""
this will  convert image file to Base64 string
"""

import os
import base64
import argparse

#def get_filename(absolute_path):


def write_to_txt(string,filename): #(base64字符串,绝对路径文件名)
    (dir_name,base_filename) = os.path.split(filename)
    base_filename = os.path.splitext(base_filename)[0]
    suffix = '_base64.txt'
    txt_name = os.path.join(dir_name,base_filename + suffix ) #拼接包含路径的 txt 文件名
    #print(txt_name)
    #print(dir_name)
    f = open(txt_name,'w')
    f.write(string)
    f.close


def convert(filename):
    f=open(filename,'rb') #二进制方式打开图文件
    ls_f=base64.b64encode(f.read()) #读取文件内容,转换为base64编码
    write_to_txt(ls_f,filename)
    f.close()


def get_parser():
    parser = argparse.ArgumentParser(description='change extension of files in a working directory')
    parser.add_argument('filename', metavar='FILENAME', type=str, nargs=1, help='photo`s filename')
    return parser


def main():
    parser = get_parser()
    args = vars(parser.parse_args())
    filename = args['filename'][0]
    convert(filename)


if __name__ == '__main__':
    main()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MARKDOWN-插入图片 的相关文章

随机推荐

  • Leetcode第 217 场周赛(思维量比较大)

    Leetcode第 217 场周赛 比赛链接 xff1a 点这里 做完前两题我就知道今天的竞赛我已经结束了 这场比赛思维量还是比较大的 1673 找出最具竞争力的子序列 题目 给你一个整数数组 nums 和一个正整数 k xff0c 返回长
  • 牛客巅峰赛S2第6场题解

    牛客编程巅峰赛S2第6场 A String 题目 题目描述 给出一个仅包含小写字母的字符串s xff0c 你最多可以操作k次 xff0c 使得任意一个小写字母变为与其相邻的小写字母 xff08 ASCII码差值的绝对值为1 xff09 xf
  • 2021牛客寒假算法基础集训营1 题解

    2021牛客寒假算法基础集训营1 题解 比赛地址 xff1a https ac nowcoder com acm contest 9981 官方题解 xff1a https ac nowcoder com discuss 593200 A
  • 自监督学习(self-supervised learning)(20201124)

    看论文总是会看出来一堆堆奇奇怪怪的名词 从远程监督 有监督 半监督 无监督开始 xff0c 最近又看到了一个自监督 首先先对上面的概念进行简述 xff1a 半监督 xff08 semi supervised learning xff09 x
  • mynteye_sdk SDK ubuntu20 编译问题

    1 pcl问题 xff1a usr include pcl 1 10 pcl point types h 508 1 error plus is not a member of pcl traits 508 POINT CLOUD REGI
  • 异常抛出**异常捕获**with用法

    1 对于异常处理 xff0c javascript支持异常处理 xff0c 支持手动抛出异常 需要抛出的时候 xff0c 总是通过throw语句抛出Error对象 语法如下 xff1a throw new Error errorString
  • Java IO流 使用流技术将一张图片从一个目录复制到另一个目录

    题目 xff1a 使用流技术将一张图片从F images目录下 xff0c 复制到D images目录下 复制图片需要使用字节流 xff0c 使用字符流复制会将图片字节码格式进行编码 xff0c 可能会导致图片数据丢失 span class
  • 卡尔曼滤波KF

    KF 根据贝叶斯估计的原理 xff0c 卡尔曼滤波是利用已知系统模型的确定性特性和统计特性等先验知识与观测量获得最有估计 xff0c 在有初始值的情况下 xff0c 从先验值和最新观测数据中得到的新值的加权平均来更新状态估计 1 卡尔曼滤波
  • 解决VS2019提示未能加载项目文件。缺少根元素的错误

    解决VS2019提示未能加载项目文件 缺少根元素的错误 上次win10自动更新关掉了打开的vs xff0c 导致开机后再打开解决方案 xff0c 某个项目一直无法加载 xff0c 提示未能加载项目文件 缺少根元素的错误 迁移报告上显示这个项
  • 实验二 串口通信及中断实验

    一 xff0e 实验目的 xff08 1 xff09 熟悉 MCU 的异步串行通信 Uart 的工作原理 xff08 2 xff09 掌握 Uart 的通信编程方法 xff08 3 xff09 掌握中断的编程方法 xff08 4 xff09
  • 多线程编程入门——C++ 「semaphore.h」

    回顾OS xff0c 发现自己基本没有实际操作过多线程编程 xff0c 所以想从今天开始学习 从Leedcode的 1114 按序打印开始 xff1a 信号量类型 sem t 原型 xff1a extern int sem init P s
  • 使用网络调试助手连接EMQ服务器

    一 使用MQTT协议与服务器建立连接 1 在图纸中的位置输入EMQ服务器地址与EMQ服务器的端口 2 接下来我们来看一下MQTT协议中的CONNECT报文 1 固定报头 byte1为0x10 xff0c 表示向服务器端发送的为CONNECT
  • npm下载以来版本问题 npm ERR! code ERESOLVE

    这里就是提示npm的版本太高 xff0c 这个时候 xff0c 需要我们问一下原来开发人员的npm的版本号 xff0c 在进行npm insdtall g npm 64 版本号 安装vue element admin项目问题补充 xff1a
  • 在机器人中执行完的仿真怎么移植到真实机器人上?

    最近在鱼香ROS上看了一篇文章 xff0c 在自己的号上记录一下用以保存 一 搞清楚数据流图 1 1建图 以常见的功能包来说 xff0c 一般都可以在运行的时候生成对应的话题输入与输出 xff0c cmd vel用于控制gazebo中的小车
  • 算法——最长公共子序列(动态规划)

    给定两个字符串 text1 和 text2 xff0c 返回这两个字符串的最长 公共子序列 的长度 如果不存在 公共子序列 xff0c 返回 0 一个字符串的 子序列 是指这样一个新的字符串 xff1a 它是由原字符串在不改变字符的相对顺序
  • VINF_FUSION编译出现大量的error: ‘CV_CALIB_CB_ADAPTIVE_THRESH’ was not declared in this scope错误

    错误 span class token operator span home span class token operator span lee span class token operator span catkin ws span
  • 在线古诗自动生成器的设计与实现

    在线古诗自动生成器的设计与实现 前言一 算法模型介绍LSTM简介模型框架实验环境实验与分析实验数据集数据集预处理训练过程模型训练结果模型的评估 二 在线古诗生成器的设计与实现系统结构远程服务器的项目部署系统测试 三 成品展示 前言 古诗 x
  • S7503E V7 snmpv3典型组网配置案例(与IMC联动)

    转载来源 xff1a S7503E V7 snmpv3典型组网配置案例 xff08 与IMC联动 xff09 https mp weixin qq com s idTHFiRDRRZX9nkd pOSiA 组网及说明 本案例为S7503E
  • OBS Studio录屏软件安装和使用教程

    OBS Studio 全称Open Broadcaster Software Studio 是一个免费的开源的无水印的且不限制时长的视频录制软件 1 首先百度搜索 34 联想软件商店 34 xff0c 单击带有 官方 的即可或直接打开htt
  • MARKDOWN-插入图片

    MARKDOWN 插入图片 1 markdown是什么 Markdown 是一种轻量级标记语言 xff0c 创始人为约翰 格鲁伯 xff08 John Gruber xff09 它允许人们使用易读易写的纯文本格式编写文档 xff0c 然后转