`
MauerSu
  • 浏览: 514543 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

data:image/png;base64是什么

 
阅读更多
源:http://copier.blog.163.com/blog/static/22010100201371294234760/
评:
大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAAA3NCSVQICAjb4U/gAAAABlBMVEX///+ZmZmOUEqyAAAAAnRSTlMA/1uRIrUAAAAJcEhZcwAACusAAArrAYKLDVoAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDkvMjAvMTIGkKG+AAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAAB1JREFUCJljONjA8LiBoZyBwY6BQQZMAtlAkYMNAF1fBs/zPvcnAAAAAElFTkSuQmCC

那么这是什么呢?这是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 编码和解码的工具,在PHP中可以用函数base64_encode() 进行编码,如echo base64_encode(file_get_contents(‘wg.png’));
目前,IE8、Firfox、Chrome、Opera浏览器都支持这种小文件嵌入。

举个图片的例子:
网页中一张图片可以这样显示:

<img src="http://mail.163.com/images/x.png" />

也可以这样显示:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAAA3NCSVQICAjb4U/gAAAABlBMVEX///+ZmZmOUEqyAAAAAnRSTlMA/1uRIrUAAAAJcEhZcwAACusAAArrAYKLDVoAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDkvMjAvMTIGkKG+AAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAAB1JREFUCJljONjA8LiBoZyBwY6BQQZMAtlAkYMNAF1fBs/zPvcnAAAAAElFTkSuQmCC" />

把图像文件的内容直接写在了HTML 文件中,这样做的好处是,节省了一个HTTP 请求。坏处是浏览器不会缓存这种图像。
分享到:
评论

相关推荐

    浏览器中的data类型的Url格式 data:image/png,data:image/jpeg!

    base64,base64编码的图像数据`:用于插入图像,其中*代表图像类型如gif、png、jpeg等。图像数据需先用Base64编码。 Base64是一种用于将二进制数据转换为ASCII字符的编码方式,使得这些数据可以在基于文本的系统中...

    python将图片转base64,实现前端显示

    例如:&lt;img src="data:image/png;base64,这里是base64的编码"/&gt;。 3. 文件大小与编码长度:需要注意的是,Base64编码后的字符串长度大约是原始二进制数据长度的1.33倍。因为Base64编码使用ASCII字符集,所以每三个...

    base64转图片; png字节的图片转jpg字节的图片

    1.base64格式转图片并保存; 2.png字节的图片转jpg字节的图片(流的形式) 3.亲测可以使用,不提供jar,自己下载jar

    我的网站-源码

    【标题】"我的网站-源码"所涉及的知识点主要围绕网站开发的源代码,意味着这个压缩包包含了一个网站从设计到实现的所有源文件。... ...它通过一系列标签来定义网页的结构,如`&lt;head&gt;`、`&lt;body&gt;`、`&lt;header&gt;`、`&lt;nav&gt;`、`...

    .net 图片base64编码 Data URI scheme

    `&lt;data&gt;`是经过Base64编码的资源数据,如果数据采用Base64编码,则在`&lt;mediatype&gt;`后面加上`;base64`。 在.NET环境中,我们可以使用System.Text.Encoding类的GetBytes方法将图片文件读取为字节数组,然后使用...

    图片与base64互相转换工具

    base64,`或`data:image/png;base64,`前缀表示图片类型,后面接Base64编码的字符串。 3. **Base64到图片转换**: - 反向过程是将Base64字符串解码回二进制数据,然后写入到新的图片文件中。 - 在程序中,通常会先...

    Glide加载图片库的简单使用

    .error(R.drawable.error_image) // 错误图 .into(imageView); ``` 5. **尺寸调整与裁剪** 为了优化性能,可以指定图片的大小: ```java Glide.with(context) .load("http://example.com/image.jpg") ....

    apicloud头像裁切模块

    端调用方法: xlCrop({params},callback(ret,err)) params: from:”gallery”||”camera”; savePath:默认为cach/... saveName:支持三种格式保存(.jpg,.png,.jpeg...base64Data:base64串:data:image/png;base64,... }

    基于html2canvas生成带二维码的活动海报

    5. 将canvas转换为图片(通常为PNG格式),并提供下载链接或使用`Blob`对象上传到服务器。 五、注意事项 1. 在使用html2canvas时,需注意处理跨域图片,因为安全限制,它可能无法正确渲染。 2. 对CSS的处理要充分,...

    webp格式一键转小图片,拖入即转成功,保留原文件名称,扩展名可选(jpg,png),路径可选(默认原路径)非常方便,一次一个

    工作中的小帮手webp2image 引用组件: Imazen.WebP 放入依赖文件(重要必须,否则无法使用,libwebp.dll) 本压缩包为x86兼容64位。 自动保存到原路径:和webp同路径 下拉框:可选保存的文件格式(默认jpg可选Png) ...

    canvas保存为data:image扩展功能的实现

    base64,"后面跟着Base64编码的图像数据。这种数据URL可以直接插入到`&lt;img&gt;`标签的`src`属性中,使得图像能够在网页上显示。 然而,原生的`toDataURL()`方法可能无法满足所有需求,比如可能需要调整图片质量、添加...

    JAVA本地或者网络图片转base64工具类.zip

    可以将本地图片或网络转为base64字符串。压缩包内包含使用说明pdf。压缩后的结果类似为data:image/png;base64,/9j/4AAQSkZJRgABAQEAAQABAAD= 代码可以自行修改

    Android图片的Base64编码与解码及解码Base64图片方法

    在某些场景下,Base64编码的图片字符串会包含额外的信息,例如"data:image/*;base64,",这通常出现在HTML的`&lt;img&gt;`标签中。在解码这种形式的字符串时,需要先去除前缀,只保留Base64编码的部分: ```java public ...

    解决canvas转base64/jpeg时透明区域变成黑色背景的方法

    在用canvas将png图片转jpeg时,发现透明区域被填充成黑色。 代码如下: XML/HTML Code复制内容到剪贴板 &lt;p&gt;Canvas:&lt;/p&gt;   style&gt;&lt;/canvas&gt;    &lt;p&gt;Base64转码后的图片:&lt;/p&gt;  &lt;div u00a0id=base64Img&gt;...

    html2canvas.rar

    canvas.toDataURL('image/png').replace('data:image/png;base64,', '') .split(',')[1] .toString('base64') .then(function(dataUrl) { var link = document.createElement('a'); link.download = '...

    linux下图片批量转base64

    #功能验证:打开浏览器在地址栏输入data:image/png;base64,base64文件内容 回车即可显示原图片 #=======================参数区域=================================================== #是否合并false/true:即是否...

    js 显示base64编码的二进制流网页图片

    这里的`&lt;mediatype&gt;`表示数据的类型,例如`image/gif`代表GIF图片,`&lt;data&gt;`是实际的数据,如果使用base64编码,则会添加`base64`作为分隔符。例如,一个简单的2x2白色GIF图片的Data URI可能是这样的: ```html ...

    图片在线转Base64编码 v1.0

    base64,"的格式,这里的{type}代表图片的原始格式,如png、jpeg等。这种格式可以直接用于HTML的`&lt;img&gt;`标签,例如: ```html &lt;img src="data:image/jpeg;base64,/9j/4AAQSk... (此处为Base64编码的字符串) /9k="/&gt; ...

    ADS-4:MODULO-4

    &lt; :scroll: &gt; REPOSITÓRIODEMATÉRIAS 兵马俑的命运 Análisee Desenvolvimento de Sistemas-图尔马2019/2 :books: 语境 SEMESTRE LETIVO:2021/1 埃斯特拉图拉 ### ADS-4(ANALISE E DESENVOLVIMENTO DE ...

Global site tag (gtag.js) - Google Analytics