一、我们在看代码时经常在img或css背景图片中看到:
src=”data:image/png; 64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOus
bgAAAAeFBMVEUAwAD///+U5ZTc9twOww7G8MYwzDCH4==”
src或 url() 中有一大串编码。它把一些 8-bit 数据翻译成标准 ASCII 字符,网上有很多免费的 64 编码和解码的工具, 后面跟的一串代码就相当于链接地址。
二、目前,Data URL scheme 支持的类型:
data:,文本数据
data:text/plain,文本数据
data:text/html,HTML代码
data:text/html; 64, 64编码的HTML代码
data:text/css,CSS代码
data:text/css; 64, 64编码的CSS代码
data:text/ , 代码
data:text/ ; 64, 64编码的 代码
data:image/gif; 64, 64编码的gif图片数据
data:image/png; 64, 64编码的png图片数据
data:image/jpeg; 64, 64编码的jpeg图片数据
data:image/x-icon; 64, 64编码的icon图片数据
三、js将图片转化为 64(2种方法)
利用canvas 将图片转化为 64 编码格式
var canvas = document.createElement(\"canvas\");
var ctx = canvas.getContext(\'2d\'),
img = new Image;
img.src=\"./vheider.jpg\";
// img.setAttribute(\'crossOrigin\', \'anonymous\') // 图片跨域时有用
img. = function(){
canvas.height = img.height;
canvas.width = img.width;
ctx.drawImage(img,0,0);
dataURL =canvas.toDataURL(\"image/jpeg\");
$(\'#img\').attr(\'src\', dataURL);
console.log(canvas.toDataURL(\"image/jpeg\"))
};
注意: 这里要在服务端打开,不然浏览器可能会报 index.html:41 Uncaught SecurityError: Failed to execute \'toDataURL\' on \'HTMLCanvasElement\': Tainted canvases may not be exported. 错误
2 . 利用 html5 的 FileReader 将图片转化 64格式
FileReader 是H5提供的一个处理文件的API,
① 判断浏览器是否支持FileReader
if(window.FileReader){
//处理文件
}else{
return \"浏览器不支持FileRedaer\"
}
② FileReader 接口有四个方法:
readAsBinaryString (file) 将文件读取为二进制码
readAsDataURL (file) 将文件读取为 DataURL
readAsText (file,encoding) 将文件读取为文本(第二个参数是编码格式,一般默认是UTF-8)
about 中断读取
③ FileReader还提供给了一些事件:
中断时触发
出错时触发
文件读取成功完成时触发
end 读取完成触发,无论成功或失败
start 读取开始时触发
onprogress 读取中
注意:重点内容
FileReader 读取后的文件不会返回给FileReader 本身, 而是存储在了 result 中
HTML
<input type=\"file\" id=\"file\" multiple=\"multiple\">
<div id=\"imgDiv\"></div>
var result = document.getElementById(\"result\");
var file = document.getElementById(\"file\");
file.change=function(){
var file = file.files[0]
var reader=new FileReader();
reader.readAsBinaryString(file);
reader. =function (e){
imgDiv.innerHTML=\'<img src=\"\'+this.result+\'\" alt=\"\"/>\'
console.log(this) // 打印出转换后的 file 文件对象
}
}
继续阅读与本文标签相同的文章
-
打通“最后一公里”送药地图 访海派医药集团总经理张翔
2026-05-18栏目: 教程
-
上海首个保税展示展销场所亮相 海外商品“全球同质同价”
2026-05-18栏目: 教程
-
微信聊天记录导出excel使用方法分享卓师兄微信恢复大师
2026-05-18栏目: 教程
-
用好SmartArt,快速制作美观工整的PPT
2026-05-18栏目: 教程
-
CMU 15-721 15-查询执行和处理过程 Query Execution & Processing
2026-05-18栏目: 教程
