前端——使用base64编码在页面嵌入图片

时间:2024-03-15 19:57:37

最近学了页面布局,开始写一些复杂的网站,这些网站通常含有很多的图片。因此,在写这些网站的时候我需要插入很多的图片。

因为页面中插入一个图片都要写明图片的路径——相对路径或者绝对路径。而除了具体的网站图片的图片地址,如果是在自己电脑文件夹里的图片,当我们的HTML文件在别人电脑上打开的时候图片则由于地址不对或者没有将图片一起发过去而导致图片无法显示。为了便于显示,我今天试了一下将图片转换为base64编码的方法

现在网上有很多的base64转码软件以及在线转码网站。我选取的是一个在线转码的网站:http://imgbase64.duoshitong.com/

前端——使用base64编码在页面嵌入图片

我选择的是一张大海的图片,如下:

前端——使用base64编码在页面嵌入图片

转码之后得到的编码为:

前端——使用base64编码在页面嵌入图片

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

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

data:; 文本数据 
data:text/plain, 文本数据 ; 
javascript:; HTML代码
javascript:;;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图片数据

 

复制编码后,直接将HTML文件中的对应图片的地址给替换了,保存后运行成功。·

由此可见,base64编码的使用方法也很简单,假定生成的代码为"data:image/jpeg;base64, .....",那么你只需要全部复制,然后在插入图片的时候,地址填写这段代码即可:

  1. CSS中使用:background-image: url("data:image/png;base64,iVBORw0KGgo=...");
  2. HTML中使用:<img src="data:image/png;base64,iVBORw0KGgo=..." />

个人认为使用base64编码方式有以下几种优点:

  1. .将图片转换为Base64编码,可以让你很方便地在没有上传文件的条件下将图片插入其它的网页、编辑器中。 这对于一些小的图片是极为方便的,因为你不需要再去寻找一个保存图片的地方。
  2. 将图片转换成base64编码的,在web网上一般用于小图片上,不仅可以减少图片的请求数量(集合到js、css代码中),还可以防止因为一些相对路径等问题导致图片404错误。

 

由此可见,除了添加图片地址,我们还可以用base64编码的方式,将图片转换为base64编码,从而减去很多的麻烦。此外,用该方式,系统减少了请求的次数,对html文件运行的时间效率也有增强作用。而Data URI scheme是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。因此,对于一些很小的图片,我们可以用base64编码的方式,对于一些很大的图片,它转换得到的编码过于冗长。当然了,如果不嫌弃添加这么长的编码,那也没关系。只要能够帮助自己更好地达到自己的目的,那么无论用什么方式都可以,只要合适就行。