亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

導出HTML5 Canvas圖片并上傳服務器功能

2024-09-05 07:22:58
字體:
來源:轉載
供稿:網友

導出HTML5 Canvas圖片,并上傳服務器

最近接觸的項目中,經常遇到需要canvas繪制圖片的需求,比如拼圖,比如圖片編輯等。canvas處理后的圖片必然涉及到保存,

因此,下面方法也許是你需要的~

思路:

1.使用 toDataURL()方法導出canvas圖片,此時得到base64的數據

2.將base64數據封裝blob對象

3.組裝FormData

4.ajax上傳

當然,上傳過程需要服務端的童鞋來配合,比如設置跨域,比如約定字段。。。

一個簡陋的demo:

function handleSave () {        //導出base64格式的圖片數據        var mycanvas = document.getElementById("mycanvas");        var base64Data = mycanvas.toDataURL("image/jpeg", 1.0);        //封裝blob對象        var blob = dataURItoBlob(base64Data);        //組裝formdata        var fd = new FormData();        fd.append("fileData", blob);//fileData為自定義        fd.append("fileName", "123jpg");//fileName為自定義,名字隨機生成或者寫死,看需求        //ajax上傳,ajax的形式隨意,JQ的寫法也沒有問題        //需要注意的是服務端需要設定,允許跨域請求。數據接收的方式和<input type="file"/> 上傳的文件沒有區別        var xmlHttp = new XMLHttpRequest();        xmlHttp.open("POST", “你發送上傳請求的url”);        xmlHttp.setRequestHeader("Authorization", 'Bearer ' + localStorage.token);//設置請求header,按需設定,非必須        xmlHttp.send(fd);        //ajax回調        xmlHttp.onreadystatechange = () => {            //todo  your code...        };    };function dataURItoBlob (base64Data) {    var byteString;    if (base64Data.split(',')[0].indexOf('base64') >= 0)        byteString = atob(base64Data.split(',')[1]);    else        byteString = unescape(base64Data.split(',')[1]);    var mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0];    var ia = new Uint8Array(byteString.length);    for (var i = 0; i < byteString.length; i++) {        ia[i] = byteString.charCodeAt(i);    }    return new Blob([ia], {type: mimeString});};

知識點擴展:

HTML5 Canvas轉化成圖片后上傳服務器

function b64ToUint8Array(b64Image) {   var img = atob(b64Image.split(',')[1]);   var img_buffer = [];   var i = 0;   while (i < img.length) {      img_buffer.push(img.charCodeAt(i));      i++;   }   return new Uint8Array(img_buffer);}var b64Image = canvas.toDataURL('image/jpeg');var u8Image  = b64ToUint8Array(b64Image);var formData = new FormData();formData.append("image", new Blob([ u8Image ], {type: "image/jpg"}));var xhr = new XMLHttpRequest();xhr.open("POST", "/api/upload", true);xhr.send(formData);

用上面這種方式在前端通過js處理,server端不需要進行任何額外處理。

我認為是最方便最直接的辦法,反而很多高贊回復,需要server進行各種處理,不推薦。

Had to convert canvas Base64-encoded image to  Uint8Array Blob .

參考: https://stackoverflow.com/questions/13198131/how-to-save-an-html5-canvas-as-an-image-on-a-server

總結

以上所述是小編給大家介紹的導出HTML5 Canvas圖片并上傳服務器功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
最近日韩中文字幕中文| 国产精品揄拍一区二区| 欧美日韩国产一区二区| 国产成人avxxxxx在线看| 91嫩草在线视频| 国产成人精品午夜| 亚洲一区二区三区乱码aⅴ| 91探花福利精品国产自产在线| 日韩中文在线中文网在线观看| 国产精品中文字幕久久久| 欧美日韩福利视频| 午夜精品国产精品大乳美女| 色综合久久88色综合天天看泰| 精品亚洲一区二区三区| 成人午夜一级二级三级| 久久伊人精品一区二区三区| 国产精品视频地址| 欧美孕妇毛茸茸xxxx| 国产一区二区成人| 自拍视频国产精品| 日韩在线视频观看正片免费网站| 欧美激情久久久久久| 欧美极品少妇xxxxx| 91av网站在线播放| 91精品久久久久久综合乱菊| 黄色一区二区在线观看| 亚洲国产毛片完整版| 91在线免费观看网站| 亚洲人a成www在线影院| 国产日本欧美一区二区三区| 国产精品精品视频一区二区三区| 国产日产久久高清欧美一区| 亚洲九九九在线观看| 国内精品视频一区| 国产亚洲视频中文字幕视频| 国产精品99久久久久久久久久久久| 欧美成人激情在线| 亚洲自拍偷拍在线| 日韩av影片在线观看| 亚洲欧洲美洲在线综合| 亚洲精品一区久久久久久| 91亚洲精品在线观看| 欧美一区二区三区四区在线| 一区二区欧美激情| 97精品视频在线观看| 国产精品一区久久久| 亚洲精品黄网在线观看| 欧美影院久久久| 国产98色在线| 欧美国产日韩一区| 久久久精品欧美| 国产精品视频yy9099| 日韩欧美一区视频| 中文字幕精品影院| 亚洲美女精品成人在线视频| 国产99久久久欧美黑人| 国产视频精品va久久久久久| 国产精品一区二区久久久| 精品国产欧美成人夜夜嗨| 国产色综合天天综合网| 一区二区三区四区视频| 精品色蜜蜜精品视频在线观看| 日韩视频中文字幕| 国产日韩欧美夫妻视频在线观看| 成人444kkkk在线观看| 久久久国产精品x99av| 欧美国产视频日韩| 国产精品一区二区在线| 亚洲欧美精品伊人久久| 久久99精品久久久久久噜噜| 亚洲最大成人免费视频| 成人国产精品av| 久久成人精品电影| 国产精品视频1区| 精品国产31久久久久久| 日本不卡高字幕在线2019| 91亚洲va在线va天堂va国| 日韩一区av在线| 亚洲欧美国内爽妇网| 亚洲美女中文字幕| 亚洲第一视频在线观看| 久久久影视精品| 国产成人精品亚洲精品| 欧美精品在线观看| 久久69精品久久久久久久电影好| 国产精品爱久久久久久久| 国产午夜精品视频| 97视频在线观看免费高清完整版在线观看| 久久人体大胆视频| 日韩欧美中文字幕在线播放| 91精品啪aⅴ在线观看国产| 欧美激情中文字幕乱码免费| 日韩美女视频免费在线观看| 国产欧美欧洲在线观看| 亚洲成人av在线播放| 亚洲欧洲在线免费| 亚洲**2019国产| 国产一区二区三区欧美| 国内精品久久久久影院优| 国产成人精品在线视频| 国产精品久久久一区| 日韩av影片在线观看| 国产欧美日韩91| 韩国视频理论视频久久| 亚洲美女视频网| 91精品国产91久久久久| 国产69精品久久久久9999| 黑人巨大精品欧美一区二区| 久久精品国产免费观看| 45www国产精品网站| 国产va免费精品高清在线| 欧美亚洲国产成人精品| 丰满岳妇乱一区二区三区| 在线免费观看羞羞视频一区二区| 欧美激情喷水视频| 亚洲爱爱爱爱爱| 91久热免费在线视频| 亚洲成色999久久网站| 欧美性受xxx| 欧美电影第一页| 日韩在线视频国产| 亚洲欧美在线一区| 欧美日韩一区二区免费视频| 国产日韩欧美夫妻视频在线观看| 亚洲第一福利网站| 日韩大陆毛片av| 青青草原成人在线视频| 国产美女精品视频免费观看| 亚洲国产成人精品电影| 亚洲精品视频免费在线观看| 欧美日韩免费在线观看| 91精品国产高清久久久久久| 欧美国产精品va在线观看| 中文字幕综合一区| 国产精品久久不能| 91成人免费观看网站| 日韩免费高清在线观看| 日韩va亚洲va欧洲va国产| 久久综合电影一区| 国产精品激情av电影在线观看| 精品成人在线视频| 午夜精品99久久免费| 亚洲精品电影网在线观看| 丝袜美腿亚洲一区二区| 日本免费一区二区三区视频观看| 欧美激情综合亚洲一二区| 久久综合88中文色鬼| 久色乳综合思思在线视频| 久久精品国产2020观看福利| 国产欧美日韩91| 最近的2019中文字幕免费一页| 2019国产精品自在线拍国产不卡| www.日韩系列| 久久久综合av| 日韩精品福利网站| 日韩高清电影免费观看完整| 国产精品久久久久久久久免费看| 欧美体内谢she精2性欧美| 久久视频在线观看免费| 欧美电影免费观看高清完整| 日本最新高清不卡中文字幕| 久久69精品久久久久久国产越南| 国语对白做受69| 全球成人中文在线|