HTML base64格式的二进制流在 img 标签内显示

        页面图片渲染的常用做法是 直接在 img 标签内 给 src 附一个 url 地址,交由浏览器去下载、缓存、渲染图片,如下图:

常规做法

        但这样做就要去做一个图片存储的服务,有些即时性的图片是不需要保存的,就需要前台以二进制流的方式去渲染图片,旁边小伙的在做的时候遇到了这个问题。于是度娘了相关方法,记录下:

两种图片渲染方式

        图片而禁止留渲染要用到 Data URI scheme。

        Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并转到,就能看到它了,一张1X36的白灰png图片。

        在上面的Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。

        目前,Data URI scheme支持的类型有:

        data:,文本数据

        data:text/plain,文本数据

        data:text/html,HTML代码

        data:text/html;base64,base64编码的HTML代码

        data:text/css,CSS代码

        data:text/css;base64,base64编码的CSS代码

        data:text/javascript,Javascript代码

        data:text/javascript;base64,base64编码的Javascript代码

        data:image/gif;base64,base64编码的gif图片数据

        data:image/png;base64,base64编码的png图片数据

        data:image/jpeg;base64,base64编码的jpeg图片数据

        data:image/x-icon;base64,base64编码的icon图片数据

        base64简单地说,它把一些 8-bit 数据翻译成标准 ASCII 字符,网上有很多免费的base64 编码和解码的工具,感兴趣,可以去查阅下相关资料

        目前,IE8、Firfox、Chrome、Opera浏览器都支持这种小文件嵌入。

        我们把图像二进制流文件的内容直接写在了HTML 文件中,这样做的好处是,节省了一个HTTP 请求。坏处呢,就是浏览器不会缓存这种图像。大家可以根据实际情况进行自由取舍。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,535评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,957评论 19 139
  • 解决方案: 1. Css sprite 雪碧图,也称为css精灵图 2. Icon font 图标字体 3. Da...
    缘自世界阅读 1,980评论 0 1
  • 今天,第四节课数学老师告诉我们下午一二节课有节课是考试,我本来想把书带去接送站复习去,可是一不小心把英语书当成了数...
    郭筱然阅读 291评论 0 0
  • 姓名:张弛 公司:沈阳防锈包装材料有限责任公司 【六项精进打卡第122天】 【知~学习】 阅读《六项精进》大纲0遍...
    Leo_zhang阅读 142评论 0 0