Markdown内嵌图片的解决方法
Markdown内嵌图片的解决方法
文章目录
- Markdown内嵌图片的解决方法
- 问题与解决方案
- 一、实现功能
- 二、脚本制作
- 1.利用文件选择框选择文件或者从剪贴板读取图像
- 2.将图片转为Base64编码
- 3.转换结束的Base64编码传递至剪贴板
- 4. 制作为exe文件并绑定快捷键
- 三、脚本安装和使用
- 1. 制作python文件
- 2.制作bat或者vbs文件
- 3.制作为exe文件
- 4.使用步骤
- 四、总结与参考
问题与解决方案
使用Markdown记录笔记,分享至不同设备时里面的图片无法显示,原因是markdown不支持内嵌图片,而是采用插入路径的方式访问图片。为了分享至不同设备时能正常显示图片一般采用云端存储图片的方式,但是有没有方法能像word一样存储图片呢?答案是需要把路径更改为base64编码方式,就能实现在markdown文件中插入图片。
一、实现功能
- 截图后粘贴进markdown文档路径更给为base64格式保存
- 不使用截图时可以选择本地图片,自动更给为base64格式保存进markdown文档
二、脚本制作
1.利用文件选择框选择文件或者从剪贴板读取图像
- 从文本选择框选择文件:
import win32uidlg = win32ui.CreateFileDialog(1) # 1表示打开文件对话框dlg.SetOFNInitialDir('C:\\Users\\Desktop') # 设置打开文件对话框中的初始显示目录dlg.DoModal()filename = dlg.GetPathName() # 获取选择的文件路径和名称</pre>
- 从剪贴板获取图片文件
from PIL import ImageGrab
im = ImageGrab.grabclipboard()#获取剪贴板文件
if isinstance(im, Image.Image):img = im
else:pass
2.将图片转为Base64编码
with open("D:\\PythonCode\\base64pic\\1.jpg", 'rb') as f:base64_data = base64.b64encode(f.read())s = base64_data.decode()print('(data:image/jpeg;base64,%s) \n'%s)</pre>
3.转换结束的Base64编码传递至剪贴板
- 使用cmd窗口运行上述python代码,clip命令用于传递至剪贴板:
@echo off
python D:\\123.py | clip
- 或者使用VBscript运行脚本
>Set ws = createObject("WScript.shell")
ws.run "cmd /c python D:\\PythonCode\\base64pic.py | clip",vbhide
4. 制作为exe文件并绑定快捷键
- 将exe文件创建快捷方式后放在任务栏,可以通过“win+数字”的快捷键使用。
三、脚本安装和使用
1. 制作python文件
- 复制一下python代码,注意需要更改:
"F:\\PythonCode\\base64pic\\1.jpg"
为保存图片的本地路径。更改'C:\Users\chens\Desktop'
为初始文件对话框。保存为python文件
import win32ui,os,base64
from PIL import Image,ImageGrab
im = ImageGrab.grabclipboard()
if isinstance(im, Image.Image):img = im
else:dlg = win32ui.CreateFileDialog(1) # 1表示打开文件对话框dlg.SetOFNInitialDir(r'C:\Users\chens\Desktop') # 设置打开文件对话框中的初始显示目录dlg.DoModal()filename = dlg.GetPathName() # 获取选择的文件名称img = Image.open(filename)img.thumbnail((778,439),Image.ANTIALIAS)
img=img.convert('RGB')
img.save("F:\\PythonCode\\base64pic\\1.jpg", quality=70)
with open("F:\\PythonCode\\base64pic\\1.jpg", 'rb') as f:base64_data = base64.b64encode(f.read())s = base64_data.decode()print('![](data:image/jpeg;base64,%s)'%s)os.remove("F:\\PythonCode\\base64pic\\1.jpg")
2.制作bat或者vbs文件
- 制作bat文件:复制一下代码用bat格式保存。(路径为上面pyhon文件所在地址)
@echo off
python D:\\123.py | clip
- 或者制作vbs文件
>Set ws = createObject("WScript.shell")
ws.run "cmd /c python D:\\PythonCode\\base64pic.py | clip",vbhide
制作完bat或者vbs文件,打开他们就可以实现上述功能啦!但如果制作成exe文件则会更加方便些(下一步)。
3.制作为exe文件
- 这里以vbs文件为例:使用工具vbs to exe可以转换为exe(链接:https://pan.baidu.com/s/1Mu-qkmVzVx32FtBBD0WAFg 提取码:wdsa )
- 创建快捷方式,固定至任务栏,可以更改快捷方式的图标。
注意:生成的exe文件可能被杀毒软件误杀,将其加入杀毒软件白名单即可。另外,也可在生成exe时更换图标。
4.使用步骤
- 截图后启动exe文件,复制文本则为base编码的图片
- 或者直接启动exe文件,在文件选择框中选取相应图片
四、总结与参考
由于base64编码长度很长,可以参考一下格式保存:
![image][tmp]
your document here ...[tmp]:data:image/png;base64, ......
[1]Markdown插入图片的完美解决方法
[2]VBS转化为exe可执行文件
[3]将图片内嵌入Markdown文档中
Markdown内嵌图片的解决方法相关推荐
- 【Markdown】Markdown和插入图片的解决方法
推荐使用马克飞象,插图不用那么麻烦:马克飞象 - 专为印象笔记打造的Markdown编辑器 目录 1.Markdown使用方法 Markdown工具 Markdown语法 插入程序代码 常用语法 插入 ...
- JavaMail(四)——发送HTML格式、内嵌图片、带附件的邮件
代码如下: package com.company;import javax.activation.DataHandler; import javax.activation.FileDataSourc ...
- java发送内嵌图片邮件
前言: 博客系统中需要邮件服务的功能,以前写过类似的功能,不过功能太简单了,仅仅是发送文本内容,现在尝试一下发送内嵌图片邮件! 准备工作: 请参考:http://www.cnblogs.com/huj ...
- WPS内嵌图片怎样使用Java获取图片?
wps表格中,将图片如图设置为内嵌图片格式时,Java后端的POI无法读取图片,有其他的解决办法吗?(图片设置为浮动图片时可正常读取)
- html谷歌浏览器3D效果 图片不出现,chrome浏览器图片无法显示怎么办 chrome浏览器显示不出图片的解决方法...
谷歌浏览器是现在非常多用户常用的浏览器之一,在很多使用的过程中,难免也会遇到一些问题,最近有很多用户在浏览器页面时发现图片无法正常显示,那么这种情况该怎么解决呢?下面教程之家网为大家带来chrome浏 ...
- Java发送内嵌图片的邮件
使用Java发送邮件时,既需要发送html文档又需要在邮件中内嵌图片(非附件形式),这里封装了一个类使用JavaMail组织的邮件发送,支持多张图片发送,并指定图片位置.注意img标签src要如下写& ...
- vue代码上传服务器后背景图片404解决方法
vue代码上传服务器后背景图片404解决方法 参考文章: (1)vue代码上传服务器后背景图片404解决方法 (2)https://www.cnblogs.com/Mrrabbit/p/7830944 ...
- Win10系统双击无法打开图片的解决方法
一位用户将电脑系统升级到Windows10正式版后,发现计算机中的图片双击打不开了,这是怎么回事呢?其实,该问题是由于win10系统默认情况下将[照片查看器]屏蔽所导致的.接下来,就随小编一起看看Wi ...
- 文本文档写html图片显示不出来,word文档几种不显示图片的解决方法
word文档几种不显示图片的解决方法 我们在Word文档添加图片的时候,常常会遇到图片显示不出来的情况,那么这个时候应该怎么办呢?下面就来和小编一起看看word文档几种不显示图片的解决方法吧. 1.可 ...
最新文章
- 另类寻找百度文库下载地址
- ie对java的设置字体_关于IE6幽灵字体 - JavaSwing的个人空间 - OSCHINA - 中文开源技术交流社区...
- [Java]图片压缩
- Android 通过Uri获取Bitmap对象
- django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
- python手机端秒杀_python实现淘宝秒杀脚本
- ASP.NET Core快速入门(第5章:认证与授权)--学习笔记
- 【转】.NET 的 WebSocket 开发包比较
- redis linux服务,linux服务之redis
- HDU 1533 二分图最小权匹配 Going Home
- mysql执行语句_MySQL查看实时执行的SQL语句
- 【TSP】基于matlab GUI遗传算法求解旅行商问题【含Matlab源码 899期】
- siamfc代码解读_SiamFC算法改进思路
- Python趣味绘图,一闪一闪亮晶晶,满天都是小星星
- 山东理工ACM 1151 C语言实验——输出字符串
- unix/linux 系统 进程资源限制参数
- SBUF, TI/RI, ES
- Spring @Resource详解
- 【智能卡】智能卡之SWP
- Ubuntu16.4加小觅深度相机实现远程视频监控
热门文章
- 中小企业筹资新法:应收账款也可质押融资
- 关于Windows无法格式化该卷,因为该卷已脱机的问题解决办法
- 我的世界服务器增加刷怪率,教你制作服务器中更高效率的刷怪塔
- 拆解进口美国产飞机仪表!看看USA做工!
- 清除“全能车”这颗“毒瘤”,共享单车再出发
- 9年前,字节跳动第一个安卓工程师是这样工作的
- 20162330 2017-2018-1《程序设计与数据结构》课程总结
- 一个非知识库的中文分词算法实现
- 游戏陪玩App,如雨后春笋般冒出,直接导致整个游戏陪玩源码市场的持续火爆
- mysql在windows安装和卸载步骤,以及相关问题的解决记录