如何将图片内嵌到 Markdown 文档中,Markdown 如何使用 Data URL

本文介绍如何将图片内嵌到Markdown文档中,利用Data URL技术。讨论了其生成方法、优缺点,指出Data URL在某些场景下可能导致更高的CPU资源消耗和内存占用。同时提及IE6/7不支持此技术,建议在现代浏览器环境下适量使用。

我在云栖社区的聚能聊中发布了一个话题:“markdown编辑器与富文本编辑器之争,哪一个你最钟情?”。

其中有回复提到:

markdown轻巧归轻巧,但也有硬伤,比如插入的图片如何保存的问题。几乎所有的markdown工具都会把图片单独保存在一个地方,这就是说你把自己的.md文件拷贝给别人的时候,还得把图片一并拷给他,而且路径要一模一样!这是妈蛋工具最大的吐槽点,图片就是处理的不好,就是这一点比不上office。
其实 markdown 是可以使用 Data Url 将文件存入 markdown 文档流当中的。

如何使用?


显示结果:


如何生成 Data Url?

请参考:

Data Url生成工具之HTML5 FileReader实现

用Visual Studio 2010编写Data Url生成工具C#版

使用 Data Url 的不足:

1、会让文档体积变得很大!

2、IE6/7是不支持Data URL技术的,不幸的是在中国还有很多用户在使用这种古老的浏览器。希望各方面包括官方和民间都多做努力工作,让现代浏览器(谷歌浏览器,火狐浏览器,IE11+)尽快的占领市场,这是我们Web程序员最大的愿望。

使用 Data Url 的优点:

说到Data URI的优点,自然少不了“减少链接数”,把图片转为Base64编码,以减少图片的链接数。我们先想当然一下,同样一张图片,如果不用发起一个下载请求,打开速度是会更快的。但是,有几个问题需要关注下:

图片始终是要下载的,那么下载一张图片的速度快还是下载一堆编码快?
浏览器对图片的显示,处理效率哪个更快?
图片的缓存问题
  原文测试,使用Data URL方式的Demo在渲染时会比不使用 多消耗53%左右的CPU资源,内存多出4倍左右,耗时平均高出24.6倍 。由此可见,使用Data URl方式还是需要更多的考量,在可接受的范围内适量使用。


参考链接:

将图片内嵌入Markdown文档中

Data URL和图片,及Data URI的利弊

Markdown文档中插入和处理图片是一个常见的需求,尤其在编写技术文档、博客文章或项目说明时。以下是几种常用的插入和处理图片的方法: ### 插入本地图片 如果图片存储在本地文件系统中,可以直接使用Markdown图片语法来插入图片。基本语法如下: ```markdown ![替代文本](图片路径 "可选的标题") ``` 例如,如果图片文件位于与Markdown文件相同的目录中,可以这样写: ```markdown ![示例图片](example.jpg "示例标题") ``` 如果图片文件位于子目录中,可以指定相对路径: ```markdown ![示例图片](images/example.jpg "示例标题") ``` ### 插入网络图片 如果图片存储在网络上,可以通过URL来引用图片。语法与插入本地图片相同,只需将路径替换为URL: ```markdown ![GitHub](https://github.com/unicorn.png "GitHub") ``` ### 处理图片路径问题 当分享Markdown文件时,插入的本地图片可能会因为路径问题而失效。为了避免这种情况,有两种常见的解决方法: 1. **上传图片到网络**:将图片上传到网络服务器或图床服务,并在Markdown文件中使用图片URL。这样可以确保无论在哪里分享Markdown文件,图片都能正常显示。 2. **内嵌图片Markdown文件中**:虽然Markdown本身不支持直接内嵌图片,但可以使用Base64编码将图片数据嵌入到Markdown文件中。例如: ```markdown ![替代文本](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGA... ``` 注意:这种方法会使Markdown文件体积增大,并且不易于维护。 ### 使用HTML标签插入图片 Markdown支持内联HTML,因此也可以使用HTML的`<img>`标签来插入图片。这种方法提供了更多的控制选项,如设置图片宽度、高度等: ```html <img src="example.jpg" alt="示例图片" width="200" /> ``` ### 示例代码 以下是一个完整的示例,展示了如何在Markdown中插入本地图片和网络图片: ```markdown ![本地图片](example.jpg "本地图片示例") ![网络图片](https://example.com/online-image.jpg "网络图片示例") ``` ### 总结 在Markdown中插入和处理图片的方法多样,具体选择哪种方法取决于实际需求和场景。无论是插入本地图片还是网络图片,都可以通过简单的语法实现。对于需要共享的Markdown文件,建议将图片上传到网络以确保图片的可访问性。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值