html是超文本标记语言,里面显示的图片一般是指向另一个url的,但是,在我使用word的时候,我发现word文件里面是可以包含图片的,而且图片是保存在word文件里面的,这个就比html方便多了,当我保存html的时候,一般需要把相应的资源文件(图片、css、js)保存到一个目录里面,这个感觉麻烦。

css、js是可以直接写在html里面的,那么,能不能将图片数据也直接写到html里面的,去google百度了一下,还真有:

http://hi.baidu.com/guodong828/blog/item/7d86960acf23052bb0351d7c.html

需要注意的是:

1. IE到IE8都还不支持(IE9没试)

2. base64的数据膨胀系数为 1/7,即原来的7位的数据被编码成了1个字节

避免变成死链接,这里copy一份:

—————————————————————————

所谓"data"类型的Url格式,是在RFC2397中提出的,目的对于一些“小”的数据,可以在网页中直接嵌入,而不是从外部文件载入。例如对于img这个Tag,哪怕这个图片非常非常的小,小到只有一个点,也是要从另外一个外部的图片文件例如gif文件中读入的,如果浏览器实现了data类型的Url格式,这个文件就可以直接从页面文件内部读入了。

data类型的Url格式早在1998年就提出了,时至今日,Firfox、Opera、Safari和Konqueror这些浏览器都已经支持,但是IE直到7.0版本都还没有支持,IE不支持的东西太多了,也不差这一个。

[小例子]

下面这个html代码可以在支持data类型Url的浏览器中运行,例如Firefox。运行后会看到一条蓝色渐变底色的标题。

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

.title {  background-image:url(data:image/gif;base64,R0lGODlhAQAcALMAAMXh96HR97XZ98Hf98Xg97DX97nb98Lf97vc98Tg973d96rU97ba97%2Fe96XS9

wAAACH5BAAAAAAALAAAAAABABwAAAQVMLhVBDNItXESAURyDI2CGIxQLE4EADs%3D);

background-repeat:repeat-x;

height:28px;

line-height: 28px;

text-align:center;

}

Hello, world!

这个渐变的蓝色底色实际上是用一个1×28的小图片通过横行重复(repeat-x)形成的。这个图片很小,不过104个字节,直接嵌入到html或css文件还是很合适的。

data格式的Url最直接的好处是,这些Url原本会引起一个新的网络访问,因为那里是一个网页的地址,现在不会有新的网络访问了,因为现在这里是网页的内容。这样做,会减少服务器的负载,当然同时也增加了当前网页的大小。所以对“小”数据特别有好处。

data类型Url的形式既然是Url,当然也可以直接在浏览器的地址栏中输入。

data:text/html,

Hello, world!

在浏览器中输入以上的Url,会得到一个加粗的"Hello, world!"。也就是说,data:后面的数据直接用做网页的内容,而不是网页的地址。

简单的说,data类型的Url大致有下面几种形式。

data:,data:text/plain,

data:text/html,

data:text/html;base64,

data:text/css,

data:text/css;base64,

data:text/javascript,

data:text/javascript;base64,

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图片数据

因为Url是一种基于文本的协议,所以gif/png/jpeg这种二进制属于需要用base64进行编码。换句话说,引入base64以后,就可以支持任意形式的数据格式。下面是个png图片的例子,会在浏览器中显示一个Mozilla的图标。

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHd

hcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHWSURBVHjaYvz//z8DJQAggJiQOe/fv2fv7Oz8rays/N+VkfG/iYnJfyD/1+rVq7ffu3dP

FpsBAAHEAHIBCJ85c8bN2Nj4vwsDw/8zQLwKiO8CcRoQu0DxqlWrdsHUwzBAAIGJmTNnPgYa9j8UqhFElwPxf2MIDeIrKSn9FwSJoRkAE

EAM0DD4DzMAyPi/G+QKY4hh5WAXGf8PDQ0FGwJ22d27CjADAAIIrLmjo+MXA9R2kAHvGBA2wwx6B8W7od6CeQcggKCmCEL8bgwxYCbUIG

TDVkHDBia+CuotgACCueD3TDQN75D4xmAvCoK9ARMHBzAw0AECiBHkAlC0Mdy7x9ABNA3obAZXIAa6iKEcGlMVQHwWyjYuL2d4v2cPg8v

Zswx7gHyAAAK7AOif7SAbOqCmn4Ha3AHFsIDtgPq/vLz8P4MSkJ2W9h8ggBjevXvHDo4FQUQg/kdypqCg4H8lUIACnQ/SOBMYI8bAsAJF

Pcj1AAEEjwVQqLpAbXmH5BJjqI0gi9DTAAgDBBCcAVLkgmQ7yKCZxpCQxqUZhAECCJ4XgMl493ug21ZD+aDAXH0WLM4A9MZPXJkJIIAwT

AR5pQMalaCABQUULttBGCCAGCnNzgABBgAMJ5THwGvJLAAAAABJRU5ErkJggg==

可以在Html的Img对象中使用,例如:

可以在Css的background-image属性中使用,例如:

div.image {  width:100px;  height:100px;  background-image:url(data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAF…);}

可以在Html的Css链接处使用,例如:

可以在Html的Javascript链接处使用,例如:

完整的语法定义在RFC中,完整的语法定义如下:

dataurl:= "data:" [mediatype] [";base64"] "," datamediatype  := [type"/"subtype] *( ";" parameter )data:= *urlcharparameter  := attribute "=" valueurlchar指的就是一般url中允许的字符,有些字符需要转义,例如"="要转义为"%3D",不过我测试下来,至少在Firefox里面,不转义也是可以的。

parameter可以对mediatype进行属性的扩展,常见的是charset,用来定义编码格式,在多语言情况下需要用到。例如下面的例子。

data:text/plain;charset=UTF-8;base64,5L2g5aW977yM5Lit5paH77yB这个例子会显示出"你好,中文!"。如果吧charset部分去掉,就会显示乱码,因为我用的是UTF-8编码。

Firefox有一个data类型Url的测试页面,列出了各种格式的data类型Url的测试Url,和测试结果说明。

base64编码和内容的隐秘

把二进制数据转换成为Base64不是什么难事,比如Total Commander就有这样的功能。还有一些在线资源:

http://www.greywyvern.com/code/php/binary2base64

http://www.kawa.net/works/js/data-scheme/base64-e.html

有些在线转换把base64里面的“=”转换成为%3D,这个在Url中和“=”是一样的,不转换也没什么问题。当然,这种Url还有一种隐秘的好处,就是将一些道貌岸然者不喜欢的东西,堂而皇之的放在页面上。

html图片要存在哪里,将html中的图片和html保存在一个文件里相关推荐

  1. c中写汇编语言,将汇编程序写在一个文件里,能否直接在C中调用

    将汇编程序写在一个文件里,能否直接在C中调用 麻烦请问,我用C8051F121单片机实现AD采样,用C语言编主程序(AD采集到的数据要进行处理),其中调用以前汇编编的一段AD采数程序,也就是C中嵌套汇 ...

  2. c html保存为图片格式,【单选题】在 IE 中,若要把整个网页的文字和图片一起保存在一个文件中,则文件的类型应为 。 A. HTM B. HTML C. MHT D. TXT...

    [单选题]在 IE 中,若要把整个网页的文字和图片一起保存在一个文件中,则文件的类型应为 . A. HTM B. HTML C. MHT D. TXT 更多相关问题 不属于肺主治节范畴的是()A.主持 ...

  3. ffmpeg-从flv文件中提取AAC音频数据保存为文件

    AAC ADTS格式协议: 从flv文件中提取AAC音频数据保存为文件. 如果需要详细了解AAC ADTS格式,可以查询文档. 原文件: 提取aac文件: main.c #include <st ...

  4. vue样式 引入图片_详解Vue.js中引入图片路径的几种方式

    vue --version 3.6.3 记录总结一下的Vue中引入图片路径的几种书写方式 vue中静态资源的引入机制 Vue.js关于静态资源的官方文档 静态资源可以通过两种方式进行处理: 在 Jav ...

  5. php 将内容中的图片的域名,php给编辑器中的图片地址添加域名

    传统的PC管理后台一般保存的都是图片路径,随着移动端APP的流行,很多平台需要增加API接口.这时发现图片路径并不能被远程读取,下面提供图片路径转换为URL地址的方法:/** * 替换fckedit中 ...

  6. dw读取access中的图片_怎样从Access数据库中读取图片?解决办法

    当前位置:我的异常网» C# » 怎样从Access数据库中读取图片?解决办法 怎样从Access数据库中读取图片?解决办法 www.myexceptions.net  网友分享于:2013-03-0 ...

  7. Android之ListView异步加载图片且仅显示可见子项中的图片

    折腾了好多天,遇到 N 多让人崩溃无语的问题,不过今天终于有些收获了,这是实验的第一版,有些混乱,下一步进行改造细分,先把代码记录在这儿吧. 网上查了很多资料,发现都千篇一律,抄来抄去,很多细节和完整 ...

  8. 图片适应窗口_在word中插入图片,如何避免失真模糊?实用文档建议收藏

    插入图片 在WORD文档中插入图片是一个相当常用的操作. 一般通常的做法,是使用工具截图或在其他工具中复制的图片类内容,然后在WORD文档中粘贴出来. 还有一种做法,是使用功能区"插入&qu ...

  9. 在html中三个图片切换,轻松搞定网页中的图片切换

    生活中经常看到,像新浪等很多门户网站的首页都有滚动图片的展示,如下图所示: 某网站首页滚动切换图片 这样不但可以减少文字的单一.乏味,而且可以直观内容,更好的吸引用户.那在我们做软件系统时,是否也可以 ...

最新文章

  1. 开发者推出BCH“信用卡”,方便用户离线发送BCH
  2. Tungsten Fabric SDN — Netronome Agilio SmartNIC vRouter
  3. 机器学习(MACHINE LEARNING)MATLAB和Python混合编程
  4. matlab 类 方法,最好的组织MATLAB类的方法?
  5. saslauthd mysql_启用MemCached的SASL认证
  6. Mac配置NDK环境
  7. ubuntu 18.04.1 使用心得
  8. windows更改pip源_windows环境下 更换pip镜像源
  9. 【语音处理】基于matlab语音去噪频谱分析【含Matlab源码 1019期】
  10. 2008RDS高可用:DNS轮询
  11. php下载安装教程,PHP下载安装教程
  12. STM32中USART串口通信实验
  13. HP M280 鼠标驱动
  14. 良心分享!最全面cmd快捷指令及使用方法,万字总结
  15. 【Android Jetpack】彻底弄清Navigation的BackStack如何变化
  16. SQLSERVER 数据库或表修复(DBCC CHECKDB)
  17. [0.0]-AutoSAR零基础学习-专栏介绍
  18. 一文总结 Google I/O 2023
  19. 十六进制相关(计算机存储十六进制负数、与十进制转换)
  20. 安卓桌面软件测试自学,最全的安卓APP专项测试方法!不看悔青肠

热门文章

  1. 微信小程序表格实现隔行换色
  2. dellr服务器性能测试软件,戴尔Poweredge R740服务器使用感受 | 小迪的生产力工具室...
  3. java jit技术_如何理解JIT编译技术?
  4. 微信二维码活码制作管理系统源码+独立版网站
  5. 单核CPU能够实现并行么?
  6. 【转】Linux 虚拟内存
  7. matlab解二阶微分方程组ode,MATLAB解含参数方程、矩阵方程、二阶微分方程组
  8. 云呐|医院医疗的IT设备信息化资产盘点管理系统
  9. 设计模式--桥接模式
  10. 常常反思,让你变成更好的自己