先来看一段代码:
<img src="https://img-blog.csdnimg.cn/2022010621082093381.jpg" alt="Base64 encoded image" />
那这个是什么东东呢?
其实“data:image/jpg;base64,/9j/4AAQSkZ……” 就是一张图片的Data URL,就是利用base64编码把图片数据翻译成标准ASCII字符。
等同于:
<img src="http://tieba.baidu.com/tb/static-common/img/dimensionCode/tb_common_2dbc.jpg" />
显示结果:
Data URL是在本地直接绘制图片,不是从服务器加载,所以节省了HTTP连接,起到加速网页的作用。
语法:
data:image/jpg; 声明数据协议及类型名称
base64, 编码形式为base64
/9j/4AAQSkZ…… base64编码结果
最后附上Data URL的生成方法(PHP):
<?php
$img_file = file_get_contents("http://tieba.baidu.com/tb/static-common/img/dimensionCode/tb_common_2dbc.jpg");
echo base64_encode($img_file);
?>
P.S. 本方法适合于小图片,大图片就不要考虑了,另外IE8以下浏览器不支持这种方法。用这种方法会加重客户端的CPU和内存负担,总之有利有弊。