代码改变世界

使用 data URI scheme 在小组发言中内嵌图片

  鹤冲天  阅读(3629)  评论(6编辑  收藏  举报

在博客园小组发言时,经常需要插入图片,但博客园的小组目前不能直接上传图片,只能引用外部的。我们可以使用 data URI schema 来解决。

data URI scheme

data URI scheme 允许我们使用内联(inline-code)的方式在网页中包含数据,可以在Html、CSS、Javascript等中使用。

data URI scheme 经常用来将图片嵌入网页,使用如下:

<img alt="鹤冲天的头像(您的浏览器不支持 data URI scheme,图片无法显示)" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBcQFxAAD/2wBD/*此处省略很多数据*/NONPmfvcqcdZR7XT27n//2Q%3D%3D"/>

data URI scheme 格式如下:

data:[<MIME-type>][;base64],<data>

这个格式比较简单,对照一下可得知,上面的 img 是一个使用 base64 编码的 jpg 图片。将这个 img 嵌入到本页面中,显示如下:

鹤冲天的头像(您的浏览器不支持 data URI scheme,图片无法显示 

除了 base64 编码,还可以使用 %xx 形式的 16进制URL编码,如下:

<img alt="鹤冲天的头像(您的浏览器不支持 data URI scheme,图片无法显示)" src="data:image/jpeg,%FF%D8%FF%E0%00%10JFIF%00%01%01%01%01q/*此处省略很多数据*/%F7*q%D6Q%EDt%F6%EE%7F%FF%D9"/>

生成图片数据

根据上面的格式,我们可以编写一个小程序进行生成,但我们不需要这么麻烦,有很多网站提供这种(免费)服务。下面给出几个:

1.http://dataurl.sveinbjorn.org/dataurlmaker

提供预览,复制方便。

 

2.http://websemantics.co.uk/online_tools/image_to_data_uri_convertor/

提供预览, 还能生成相应的CSS的URI data。 

 

3.http://software.hixie.ch/utilities/cgi/data/data

提示:生成不仅限于图片数据,可以使用三种方式(参见下图中的1、2、3),可以指定编码方式,但界面不友好。


在小组发言中使用 

点击 插入/编辑图片 按钮:

 

弹出下面的窗口,使用上面任意一个网址,生成图片数据,复制粘贴至图片地址文本框中: 

 

点击插入,OK了,如下图:

  

查看效果:http://space.cnblogs.com/group/topic/41938/ 

参考资料 

http://en.wikipedia.org/wiki/Data_URI_scheme

http://www.sveinbjorn.org/dataurls_css 

http://css-tricks.com/data-uris/ 

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示