pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

html5將圖片轉(zhuǎn)換成base64的實例代碼

這篇文章給大家介紹了如何利用html5將圖片轉(zhuǎn)換成base64,文中通過示例代碼介紹的很詳細,有需要的朋友們可以參考借鑒。

base64編碼介紹
base64是一種網(wǎng)絡上常用的8bit字節(jié)代碼的編碼方式,base64可以用于http環(huán)境下傳遞較長的標識信息,同時可以放在url當中使用,因為base64不懼可讀性,所以具有一定的加密功能。

為什么要把圖片轉(zhuǎn)換成base64編碼?
將圖片轉(zhuǎn)換成base64代碼可以減少http請求,因為圖片可以以字符編碼的形式直接傳遞到客戶端,而文件形式都需要進行http請求。但是也會有一個小缺點,就是圖片編碼化base64的時候大小會變大,但是通過gzip優(yōu)化以后基本差不多。所以在應用的過程當中較小的圖片可以直接編碼成base64,較大的圖片則不建議如此使用。

html5如何將圖片轉(zhuǎn)換成base64?
html5如果要將圖片轉(zhuǎn)換成base64需要使用到一個html5的接口FileReader.readAsDataURL()接口說明,這個接口可以將文件轉(zhuǎn)換成base64編碼格式,并且再以data:URL的形式展現(xiàn)出來。

示例程序
下面的代碼是示例程序,創(chuàng)建一個新html文件,然后將代碼復制粘貼使用支持html5的瀏覽器打開即可查看效果。

復制代碼
代碼如下:

<!Doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>html5 image to base64</title>
</head>
<body>
<script type="text/javascript">
window.onload = function(){
// 抓取上傳圖片,轉(zhuǎn)換代碼結果,顯示圖片的dom
var img_upload=document.getElementById("img_upload");
var base64_code=document.getElementById("base64_code");
var img_area=document.getElementById("img_area");
// 添加功能出發(fā)監(jiān)聽事件
img_upload.addEventListener('change',readFile,false);}
function readFile(){
var file=this.files[0];
if(!/image\/\w+/.test(file.type)){
alert("請確保文件為圖像類型");
return false;
}
var reader=new FileReader();
reader.readAsDataURL(file);
reader.onload=function(){
base64_code.innerHTML = this.result;
img_area.innerHTML = '<div>圖片img標簽展示:</div><img src="'+this.result+'" alt=""/>';
}
}
</script>
<input type="file" id="img_upload"/>
<textarea id="base64_code" rows="30" cols="360"></textarea>
<p id="img_area"></p>
</body>
</html>

html5圖片轉(zhuǎn)換base64代碼

程序的設計思路
1.創(chuàng)建三個html標簽,input用來上傳圖片,textarea用來顯示base64代碼,因為base64代碼內(nèi)容很多所以使用textarea標簽,p標簽用來顯示圖片。
2.使用js調(diào)用html5的FileReader.readAsDataURL()的API,聲明三個變量用于控制圖片上傳,base64代碼顯示以及圖片的顯示。
3.img_upload.addEventListener('change',readFile,false);添加一個監(jiān)聽事件,如果上傳文件發(fā)生變化就執(zhí)行readFile函數(shù)。
4.readFile函數(shù)的內(nèi)容就是調(diào)用接口,將圖片轉(zhuǎn)換成base64再輸出。
5.在執(zhí)行轉(zhuǎn)換和輸出之前先判斷一下上傳文件是不是圖片。

代碼解析及注意
1.var file=this.files[0];這里是抓取到上傳的對象。
2.this.result這個result是FileReader.readAsDataURL()接口當中轉(zhuǎn)換完圖片輸出的base64結果存放在result當中。在代碼當中添加console.log(reader);查看一下FileReader對象就可以看到。(reader是我自己起的對象的名稱)


我使用html5將圖片轉(zhuǎn)換成base64代碼的目的主要是想將圖片寫入到瀏覽器本地的數(shù)據(jù)當中來使用,上傳的時候,再嘗試恢復出來上傳圖片。目的是為了減少本地瀏覽器應用和服務器的數(shù)據(jù)通信。

總結
以上就是這篇文章的全部內(nèi)容,希望能對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學習交流,請勿用于商業(yè)用途。如損害你的權益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了有關HTML5頁面在iPhoneX適配問題,需要的朋友可以參考下
本篇文章主要介紹了html5中canvas圖表實現(xiàn)柱狀圖的示例,本文使用canvas來實現(xiàn)一個圖表,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
Adobe公司出品的多媒體處理軟件產(chǎn)品線較多,涵蓋了音視頻編輯、圖像處理、平面設計、影視后期等領域。這篇文章主要介紹了Adobe Html5 Extension開發(fā)初體驗圖文教程,非常不錯,需要的朋
這篇文章主要介紹了基于HTML5的WebGL經(jīng)典3D虛擬機房漫游動畫,需要的朋友可以參考下
這篇文章主要介紹了html5實現(xiàn)移動端適配完美寫法,需要的朋友可以參考下
本篇文章主要介紹了HTML5響應式(自適應)網(wǎng)頁設計的實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
主站蜘蛛池模板: 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 江苏远邦专注皮带秤,高精度皮带秤,电子皮带秤研发生产 | 玄米影院| 数控车床-立式加工中心-多功能机床-小型车床-山东临沂金星机床有限公司 | 北京中航时代-耐电压击穿试验仪厂家-电压击穿试验机 | 淘气堡_室内儿童乐园_户外无动力儿童游乐设备-高乐迪(北京) | 溶氧传感器-pH传感器|哈美顿(hamilton) | 塑料薄膜_PP薄膜_聚乙烯薄膜-常州市鑫美新材料包装厂 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | 双效节能浓缩器-热回流提取浓缩机组-温州市利宏机械 | 模温机-油温机-电加热导热油炉-工业冷水机「欧诺智能」 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | 滚塑PE壳体-PE塑料浮球-警示PE浮筒-宁波君益塑业有限公司 | 无线对讲-无线对讲系统解决方案-重庆畅博通信 | 电池高低温试验箱-气态冲击箱-双层电池防爆箱|简户百科 | 大学食堂装修设计_公司餐厅效果图_工厂食堂改造_迈普装饰 | 手板-手板模型-手板厂-手板加工-生产厂家,[东莞创域模型] | 物和码官网,物和码,免费一物一码数字化营销SaaS平台 | ORP控制器_ORP电极价格-上优泰百科 | 浙江栓钉_焊钉_剪力钉厂家批发_杭州八建五金制造有限公司 | 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | 步进_伺服_行星减速机,微型直流电机,大功率直流电机-淄博冠意传动机械 | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 北京京云律师事务所| 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 上海佳武自动化科技有限公司 | 便携式高压氧舱-微压氧舱-核生化洗消系统-公众洗消站-洗消帐篷-北京利盟救援 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | SMC-ASCO-CKD气缸-FESTO-MAC电磁阀-上海天筹自动化设备官网 | 无纺布包装机|径向缠绕包装机|缠绕膜打包机-上海晏陵智能设备有限公司 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 欧版反击式破碎机-欧版反击破-矿山石料破碎生产线-青州奥凯诺机械 | 耐高温硅酸铝板-硅酸铝棉保温施工|亿欧建设工程 |