国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析

來源:懂視網 責編:小采 時間:2020-11-27 22:12:22
文檔

JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析

JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析:本文實例講述了JS實現(xiàn)圖片轉換成base64的各種應用場景。分享給大家供大家參考,具體如下: 網絡上有很多片介紹通過js將圖片轉換成base64的文章,之所以再寫這篇文章的原因時發(fā)現(xiàn)沒有找到系統(tǒng)的介紹的文章,有的介紹如何實現(xiàn)本地項目的圖片轉碼,有的介紹如何
推薦度:
導讀JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析:本文實例講述了JS實現(xiàn)圖片轉換成base64的各種應用場景。分享給大家供大家參考,具體如下: 網絡上有很多片介紹通過js將圖片轉換成base64的文章,之所以再寫這篇文章的原因時發(fā)現(xiàn)沒有找到系統(tǒng)的介紹的文章,有的介紹如何實現(xiàn)本地項目的圖片轉碼,有的介紹如何

本文實例講述了JS實現(xiàn)圖片轉換成base64的各種應用場景。分享給大家供大家參考,具體如下:

網絡上有很多片介紹通過js將圖片轉換成base64的文章,之所以再寫這篇文章的原因時發(fā)現(xiàn)沒有找到系統(tǒng)的介紹的文章,有的介紹如何實現(xiàn)本地項目的圖片轉碼,有的介紹如何實現(xiàn)網絡資源的圖片轉化,但是系統(tǒng)介紹的少之又少,所以我就在這里將各種場景系統(tǒng)的介紹一下:

場景一:將用戶本地上傳的資源轉化,即用戶通過瀏覽器點擊文件上傳時,將圖片資源轉化成base64:

<input type="file" id="image"><br/>

var reader = new FileReader();
var AllowImgFileSize = 2100000; //上傳圖片最大值(單位字節(jié))( 2 M = 2097152 B )超過2M上傳失敗
var file = $("#image")[0].files[0];
var imgUrlBase64;
if (file) {
 //將文件以Data URL形式讀入頁面
 imgUrlBase64 = reader.readAsDataURL(file);
 reader.onload = function (e) {
 //var ImgFileSize = reader.result.substring(reader.result.indexOf(",") + 1).length;//截取base64碼部分(可選可不選,需要與后臺溝通)
 if (AllowImgFileSize != 0 && AllowImgFileSize < reader.result.length) {
 alert( '上傳失敗,請上傳不大于2M的圖片!');
 return;
 }else{
 //執(zhí)行上傳操作
 alert(reader.result);
 }
 }
 }

場景二:將本項目中的圖片資源轉化成base64,(我還沒有用到過此場景,感覺場景二也可以通過場景三來實現(xiàn))

function(){
 var url = "static/img/js1.jpg";//這是站內的一張圖片資源,采用的相對路徑
 convertImgToBase64(url, function(base64Img){
 //轉化后的base64
 alert(base64Img);
 });
}
//實現(xiàn)將項目的圖片轉化成base64
function convertImgToBase64(url, callback, outputFormat){
 var canvas = document.createElement('CANVAS'),
   ctx = canvas.getContext('2d'),
   img = new Image;
   img.crossOrigin = 'Anonymous';
   img.onload = function(){
   canvas.height = img.height;
   canvas.width = img.width;
   ctx.drawImage(img,0,0);
   var dataURL = canvas.toDataURL(outputFormat || 'image/png');
   callback.call(this, dataURL);
   canvas = null;
 };
   img.src = url;
}

場景三:將網絡圖片資源轉化為base64,(感覺場景二中的資源換成絕對路徑即可使用在場景三中)

function(){
   //這是網上的一張圖片鏈接
   var url="http://p1.pstatp.com/large/435d000085555bd8de10";
 getBase64(url)
 .then(function(base64){
 console.log(base64);//處理成功打印在控制臺
 },function(err){
 console.log(err);//打印異常信息
 });
}
//傳入圖片路徑,返回base64
function getBase64(img){
 function getBase64Image(img,width,height) {//width、height調用時傳入具體像素值,控制大小 ,不傳則默認圖像大小
 var canvas = document.createElement("canvas");
 canvas.width = width ? width : img.width;
 canvas.height = height ? height : img.height;
 var ctx = canvas.getContext("2d");
 ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
 var dataURL = canvas.toDataURL();
 return dataURL;
 }
 var image = new Image();
 image.crossOrigin = '';
 image.src = img;
 var deferred=$.Deferred();
 if(img){
 image.onload =function (){
 deferred.resolve(getBase64Image(image));//將base64傳給done上傳處理
 }
 return deferred.promise();//問題要讓onload完成后再return sessionStorage['imgTest']
 }
}

至此,便將圖片base64轉碼的三種場景介紹完畢了,下面是基于以上的一下拓展:

拓展一:后臺需要以純字符串的形式上傳(即去掉data:image/png;base64,截取字符串即可)

reader.result.substring(reader.result.indexOf(",") + 1)

拓展二:判斷base64資源大小,超過2M不讓上傳

var AllowImgFileSize = 2100000; //上傳圖片最大值(單位字節(jié))( 2 M = 2097152 B )
if (AllowImgFileSize != 0 && AllowImgFileSize < reader.result.length) {
 alert( '上傳失敗,請上傳不大于2M的圖片!');
 return;
}

其中reader.result即是base64轉碼后的結果。以上便是對網絡上的一些資源的整理,親測可用。

PS:這里再為大家提供幾款base64在線工具供大家參考:

BASE64編碼解碼工具:
http://tools.jb51.net/transcoding/base64

在線圖片轉換BASE64工具:
http://tools.jb51.net/transcoding/img2base64

Base64在線編碼解碼 UTF-8版:
http://tools.jb51.net/tools/base64_decode-utf8.php

Base64在線編碼解碼 gb2312版:
http://tools.jb51.net/tools/base64_decode-gb2312.php

更多關于JavaScript相關內容可查看本站專題:《JavaScript加密解密技巧匯總》、《javascript編碼操作技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析

JS實現(xiàn)圖片轉換成base64的各種應用場景實例分析:本文實例講述了JS實現(xiàn)圖片轉換成base64的各種應用場景。分享給大家供大家參考,具體如下: 網絡上有很多片介紹通過js將圖片轉換成base64的文章,之所以再寫這篇文章的原因時發(fā)現(xiàn)沒有找到系統(tǒng)的介紹的文章,有的介紹如何實現(xiàn)本地項目的圖片轉碼,有的介紹如何
推薦度:
標簽: 轉成 使用 js
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: h免费看| 毛片导航| 亚洲va欧美ⅴa国产va影院 | 久久91精品国产91久久跳舞 | 国产成人精视频在线观看免费 | 欧美一区二区三区在线 | 麻豆精品久久久 | 欧美日韩一区二区三区四区 | 欧美日韩黄色大片 | 久久精品免费一区二区视 | 久久综合精品国产一区二区三区无 | 成人精品在线视频 | 欧美日韩国产在线人 | 欧美精品久久天天躁 | 欧美日韩在线第一页 | 日韩欧美网 | 欧美日韩亚洲视频 | 九九久久香港经典三级精品 | 青青草国产免费国产是公开 | 国产国语高清在线视频二区 | 亚洲欧洲在线视频 | 日本三级成人中文字幕乱码 | 国产美女视频黄a视频全免费网站 | 国产日韩欧美一区二区三区视频 | 日韩色网 | 亚洲一区中文字幕在线观看 | 操比网站 | 日本a级精品一区二区三区 日本不卡视频一区二区三区 | 青青成人福利国产在线视频 | 亚洲综合影院 | 在线播放国产精品 | 国产观看在线 | 久久福利资源网站免费看 | 国产精彩视频 | 交换国产精品视频一区 | 久久se精品一区二区国产 | 欧美成人猛男性色生活 | 九九久久香港经典三级精品 | 国产一区二区三区在线 | 久久精品成人国产午夜 | 日本久操|