1.显示本地图片
2.显示网络上的图片,不过网络上的图片就是需要每次都去加载,可能会费流量
3.下面这种就是我们今天所要讲的第三种方式显示图片,它其实也就是根据http网络上的图片通过利用Data URL(data:image/jpg;base64,)将小图片生成数据流形式显示出来的
有时候我们会看到 <img src="data:image/jpg;base64,xxxxxxx……” />
这里的"xxxxxxx……”是一大串小图片生成数据流形式,这种方法的好处是:不用总是加载图片,而且是在没办法加载本地的图片的同时可以考虑这种,由于本人是做android客户端的,需要做内嵌页,所以这种是很好的方法.
那这些代码是如何生成的咧?
先看下这些代码“data:image/jpg;base64,xxxxxxx……” 就是一张图片的Data URL,就是利用base64编码把图片数据翻译成标准ASCII字符。
等同于:
<img src="http://www.oschina.net/img/logo_s2.png"/>
显示结果:
Data URL是在本地直接绘制图片,不是从服务器加载,所以节省了HTTP连接,起到加速网页的作用。
语法:
data:image/jpg; 声明数据协议及类型名称
base64, 编码形式为base64
xxxxxxx…… base64编码结果
最后附上Data URL的生成方法(PHP):
<?php
$img_file = file_get_contents("http://www.oschina.net/img/logo_s2.png");
echo base64_encode($img_file);
这里可以在一些在线测试php代码的网站上获取这个xxxxxxx……(比如在:http://www.mcqyy.com/RunCode/php/上进行运行得到这串"xxxxxxx……")
4.https://www.base64-image.de/
这里可以把图片转化为在线Base64
注意:本方法适合于小图片,大图片就不要考虑了,另外IE8以下浏览器不支持这种方法。用这种方法会加重客户端的CPU和内存负担,总之有利有弊。