base64图片解析

大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如:data:image/png;base64,  iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/   KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406KUgpt5/   LCKuVgz5BDCSb13ZO99ZOdcZGvt4mJjzMVKqcha68iIePB86GAiOv8CDADlIUQBs7MD3wAAAABJRU5ErkJggg %3D%3D。那么这是什么呢?这是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://www.letuknowit.com/images/wg.png”/>
也可以这样显示:
<img
src=“data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406KUgpt5/LCKuVgz5BDCSb13ZO99ZOdcZGvt4mJjzMVKqcha68iIePB86GAiOv8CDADlIUQBs7MD3wAAAABJRU5ErkJggg%3D%3D”/>
  我们把图像文件的内容直接写在了HTML 文件中,这样做的好处是,节省了一个HTTP 请求。坏处呢,就是浏览器不会缓存这种图像。大家可以根据实际情况进行自由取舍。

原文地址:http://blog.csdn.net/lgh1117/article/details/7740136

时间: 2024-08-29 14:53:34

base64图片解析的相关文章

小程序base64图片解析成流上传服务器

/** * * @Title: decodeBase64ToImage * @Description: (將base64位的图片解码成流 上传到阿里云服务器) * @param base64 图片的64进制码 * @param path 图片的本地生成地址 * @param imgName 图片名称 * @param uppath 图片的oss远程地址 * @param imgName void (这里描述输出参数的作用) * @throws * @author huyuhang * @date

chrome 隐藏技能之 base64 图片转换

有时候我们要转换图片为base64,或者将base64转回图片,可能都需要找一些在线工具或者软件类型的工具才行.当然 chrome 也算是软件,但是好在做前端的都有 chrome.好了,来看下简单的例子,我随便截了个桌面背景当例子.分别保存为 png, jpg 两种. 然后用 chrome 打开图片,接着按 F12 打开控制台,在 Sources 或 Resources 都行.看到了吧,在最后一个箭头处就是我们要的 base64 数据了,非常简单.当然这里没有data头,用的时候再加上即可. d

Zxing图片识别 从相册选二维码图片解析总结

Zxing图片识别 从相册选取二维码图片进行解析总结 在Zxing扫描识别和图片识别的解析对象是相同的 本文分三个步骤: 1 获取相册的照片 2 解析二维码图片 3 返回结果 1) 获取相册照片 google对4.4的uri做了点改动  为了适配多种手机 需要做一个判断版本 在Activity中开启相册: Intent innerIntent = new Intent(); // "android.intent.action.GET_CONTENT" if (Build.VERSION

PHP将Base64图片转换为本地图片并保存

本文出至:新太潮流网络博客 /** * [将Base64图片转换为本地图片并保存] * @E-mial [email protected] * @TIME 2017-04-07 * @WEB http://blog.iinu.com.cn * @param [Base64] $base64_image_content [要保存的Base64] * @param [目录] $path [要保存的路径] */ function base64_image_content($base64_image_c

c#base64图片格式

QQ:1187362408 欢迎技术交流和学习 c#base64图片格式篇(BASE64): TODO: 1,前缀:服务器相对路径:后缀:图片存储格式:image,bmp等图片格式,例如:(..gen/children/yz.jpg) 2,guid格式图片,例如:(new guid().jpg) 3,时间戳格式图片,例如:(QQ图片20150611151932.png) 4,base64格式图片,例如:(记不清了,开头应该是/9k.......,后面跟了很长很长一大串) 讲解篇: 1,个人喜欢b

PHP后台接收Base64图片

PHP后台接收Base64图片的时候,如何将该字符串转成图片呢? 使用base64_decode 和 fopen和fwrite组合的方法,将图片成功还原: //$img为传入字符串 $img = str_replace('data:image/png;base64,', '', $img); $img = str_replace(' ', '+', $img); $data = base64_decode($img); $imgPath="test.png"; if(@file_exi

Base64图片与UIImage的相互转化

http://blog.csdn.net/fudesign2008/article/details/38903085 Base64图片 -> UIImage [objc] view plain copy - (UIImage *) dataURL2Image: (NSString *) imgSrc { NSURL *url = [NSURL URLWithString: imgSrc]; NSData *data = [NSData dataWithContentsOfURL: url]; U

base64图片上传,推到又拍云

Html部分 <label> <img id="nvhai" src="{$agent.id|get_headimg}" height="70px" width="70"> <input style="display:none" id="tou" type="file" onchange="previewFile()"

MVC显示Base64图片

本篇演示ASP.NET MVC应用程序,显示Base64图片. Insus.NET浏览网页,发现一个站点http://www.base64-image.de/ 想起以前也有实现过<如何把数据流转换为二进制字符串>http://www.cnblogs.com/insus/archive/2011/03/30/1999519.html,方法似乎有点相似. 在控制器中,Insus.NET有创建两个Action,一个是为视图准备,另一个是把文件转换为FileStream,然后再用 Convert.To