国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

html2canvas生成圖片地址Base64格式轉(zhuǎn)成blob在轉(zhuǎn)成file(二進(jìn)制)可正常發(fā)送(保姆教程,復(fù)制粘貼可用)

這篇具有很好參考價(jià)值的文章主要介紹了html2canvas生成圖片地址Base64格式轉(zhuǎn)成blob在轉(zhuǎn)成file(二進(jìn)制)可正常發(fā)送(保姆教程,復(fù)制粘貼可用)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

開始:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 最終結(jié)果:? ? ? ? ??

?文章來源地址http://www.zghlxwxcb.cn/news/detail-646672.html

?html2canvas生成圖片地址Base64格式轉(zhuǎn)成blob在轉(zhuǎn)成file(二進(jìn)制)可正常發(fā)送(保姆教程,復(fù)制粘貼可用),javascript,開發(fā)語言,ecmascript,前端? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??html2canvas生成圖片地址Base64格式轉(zhuǎn)成blob在轉(zhuǎn)成file(二進(jìn)制)可正常發(fā)送(保姆教程,復(fù)制粘貼可用),javascript,開發(fā)語言,ecmascript,前端

1.?html2canvas方法生成的圖片地址已Base64編碼形式放在img標(biāo)簽src中可直接展示生成的圖片(注意頁面標(biāo)簽獲取位置,還有個(gè)setTimeout頁面渲染需要時(shí)間)

setTimeout(function () {
                var result = {};
                var htmlContent = document.getElementById("cockpit-drag");
                html2canvas(htmlContent,{
                    background:`${htmlContent.style.backgroundImage}`,
                    useCORS: true,
                    // height:'100%',
                // scale: 2, // 處理模糊問題
                // dpi: 300, // 處理模糊問題
                }).then(function (canvas) {
                  var imgData = canvas.toDataURL('image/png');

                  var img = document.createElement("img");
                  img.src = imgData;
                console.log(img);
                  document.body.appendChild(img);
},3000)

2. 直接發(fā)給后端存儲也可以? 但是不嚴(yán)謹(jǐn)而且 Base64編碼很長,有一個(gè)文件那么長? (正常已二進(jìn)制file流的形式傳輸),所以我們要把Base64編碼變成二進(jìn)制流的形式,也是查了很多資料,踩了很多坑,做了很多嘗試,最終成功和大家分享一下

? ?2-1. 需要先把生成的Base64編碼轉(zhuǎn)成blob(查了很多,網(wǎng)上這個(gè)方法都很統(tǒng)一,所以不會出大問題,以至于這個(gè)blob是什么不太懂 , 能用就行呀)

下邊是var一個(gè):blob方法 ↓↓↓↓↓↓↓↓↓↓↓↓

  var dataURLtoBlob =   function (dataurl){
        var arr = dataurl.split(','),
            mime = arr[0].match(/:(.*?);/)[1],
            bstr = atob(arr[1]),
            n = bstr.length,
            u8arr = new Uint8Array(n);
       while (n--) {
           u8arr[n] = bstr.charCodeAt(n);
       }
       return new Blob([u8arr], { type: mime })
  }

在這個(gè)位置調(diào)用?? ↓↓↓↓↓↓↓↓↓↓↓↓

html2canvas生成圖片地址Base64格式轉(zhuǎn)成blob在轉(zhuǎn)成file(二進(jìn)制)可正常發(fā)送(保姆教程,復(fù)制粘貼可用),javascript,開發(fā)語言,ecmascript,前端

? ? ? ??2-2. 再把生成的blob轉(zhuǎn)成二進(jìn)制流(查了很多,網(wǎng)上這個(gè)方法都很雜,所以當(dāng)時(shí)很蒙,只能不斷嘗試,各種踩坑,最終功夫不負(fù)有心人)

把blob轉(zhuǎn)成二進(jìn)制流的方法(這個(gè)東西打印有自己的方法,log打印不出來,想提升的同學(xué)再去多查查吧,今天不在這里說了

const formData = new FormData()
      formData.append('file',blob) 

直接寫在這個(gè)位置就能用??↓↓↓↓↓↓↓↓↓↓↓↓

html2canvas生成圖片地址Base64格式轉(zhuǎn)成blob在轉(zhuǎn)成file(二進(jìn)制)可正常發(fā)送(保姆教程,復(fù)制粘貼可用),javascript,開發(fā)語言,ecmascript,前端

OK,現(xiàn)在二進(jìn)制流已生成 ,萬事俱備(直接把formData作為參數(shù)傳進(jìn)接口里就可以用了)

接下來老規(guī)矩上完整代碼? 復(fù)制粘貼可用的(我用的是angular項(xiàng)目所以比較老,自己改一下紅色方框位置,放接口就好)

圖例:html2canvas生成圖片地址Base64格式轉(zhuǎn)成blob在轉(zhuǎn)成file(二進(jìn)制)可正常發(fā)送(保姆教程,復(fù)制粘貼可用),javascript,開發(fā)語言,ecmascript,前端

代碼:可復(fù)制

setTimeout(function () {
                var result = {};
                var htmlContent = document.getElementById("cockpit-drag");
                html2canvas(htmlContent,{
                    background:`${htmlContent.style.backgroundImage}`,
                    useCORS: true,
                    // height:'100%',
                // scale: 2, // 處理模糊問題
                // dpi: 300, // 處理模糊問題
                }).then(function (canvas) {
                  var imgData = canvas.toDataURL('image/png');
                  var blob = dataURLtoBlob(imgData);

                   const formData = new FormData()
                    formData.append('file',blob) 
                    
                        var xmlhttp = new XMLHttpRequest();
                        xmlhttp.open("POST", url_+"dashboard/uploadImage", false);
                        xmlhttp.send(formData);
                        $scope.$apply(function () {
                            $scope.persistFinish = true;
                        });
                //   var img = document.createElement("img");
                //   img.src = imgData;
                // console.log(img);
                //   document.body.appendChild(img);
                });
              }, 3000)

大功告成,在大前端的路上又有點(diǎn)進(jìn)步

?

到了這里,關(guān)于html2canvas生成圖片地址Base64格式轉(zhuǎn)成blob在轉(zhuǎn)成file(二進(jìn)制)可正常發(fā)送(保姆教程,復(fù)制粘貼可用)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 小程序采用html2canvas實(shí)現(xiàn)html轉(zhuǎn)canvas保存圖片

    mpaas小程序中采用html2canvas實(shí)現(xiàn)html轉(zhuǎn)canvas保存圖片 使用uniapp將代碼打包一份h5部署到服務(wù)器 h5要保存的圖片組件頁面report.vue 安裝 npm install --save html2canvas 或 yarn add html2canvas 引入import html2canvas from ‘html2canvas’; ts 小程序中采用webview跳轉(zhuǎn)到h5頁面

    2024年02月11日
    瀏覽(23)
  • html2canvas 下載圖片,scale、dpi處理圖像模糊

    1、安裝html2canvas 依賴 2、 引入html2canvas.js 3、html 4、方法,scale和dpi 解決模糊 html2canvas.js是從git上下載的: https://github.com/eKoopmans/html2canvas/tree/develop/dist 單純下載圖片方法 === 參考: 1、解決html2canvas截圖模糊的問題 2、html2canvas生成圖片模糊 不清楚?兩種解決方法 3、html2canvas在

    2024年02月17日
    瀏覽(22)
  • 前端html2canvas生成截圖【實(shí)現(xiàn)步驟與踩坑】

    需求 :點(diǎn)擊下載可以導(dǎo)出組件的 截圖 及數(shù)據(jù)信息文件 分析 :前端生成組件截圖,帶著其他參數(shù)傳給后端,拿到excel文件并下載。關(guān)鍵在于生成組件的截圖,這里通過 html2canvas 插件來實(shí)現(xiàn)。 1.下載插件 npm install html2canvas 2.引入 3.通過ref拿到要下載組件的dom元素 4.通過html2ca

    2024年04月11日
    瀏覽(28)
  • Html2canvas——圖片空白的幾種排查解決方案

    Html2canvas——圖片空白的幾種排查解決方案

    下列文章來源該篇 ? 一、工作原理 html2canvas庫的工作原理并不是真正的“截圖”,而是讀取網(wǎng)頁上的目標(biāo)DOM節(jié)點(diǎn)的信息來繪制canvas,所以它并不支持所有的css屬性。 二、在 img標(biāo)簽中加載外部圖片 前提是外部圖片允許跨域,需要服務(wù)器設(shè)置 以nginx為例,response-header內(nèi)要存在

    2024年03月20日
    瀏覽(21)
  • vue3中,使用html2canvas截圖包含視頻、圖片、文字的區(qū)域

    vue3中,使用html2canvas截圖包含視頻、圖片、文字的區(qū)域

    需求:將頁面中指定區(qū)域進(jìn)行截圖,區(qū)域中包含了圖片、文字、視頻。 第一步,先安裝 第二步,在頁面引入: 第三步,頁面使用: 1)html部分: 2)js部分: 剛開始我截出的圖只有文字,插圖和視頻部分是空白的,并沒有將頁面的插圖和視頻截進(jìn)去,最終發(fā)現(xiàn)是 跨域 導(dǎo)致的

    2024年02月06日
    瀏覽(26)
  • Vue使用html2canvas將DOM節(jié)點(diǎn)生成對應(yīng)的PDF

    要通過Vue使用html2canvas將DOM節(jié)點(diǎn)生成對應(yīng)的PDF,您需要安裝html2canvas和jspdf這兩個(gè)庫。html2canvas用于將DOM節(jié)點(diǎn)轉(zhuǎn)換為Canvas,而jspdf用于將Canvas轉(zhuǎn)換為PDF。以下是一個(gè)簡單的示例代碼,展示了如何使用html2canvas和jspdf生成PDF文件: 首先,安裝html2canvas和jspdf依賴: 然后,在Vue組件中

    2024年02月11日
    瀏覽(22)
  • 使用nginx+HTML2canvas將任意html網(wǎng)頁轉(zhuǎn)為png圖片自定義張數(shù)

    使用nginx+HTML2canvas將任意html網(wǎng)頁轉(zhuǎn)為png圖片自定義張數(shù)

    本文簡述如何使用nginx+html2canvas將任意網(wǎng)頁html轉(zhuǎn)為png圖片 如果是本地網(wǎng)頁,直接進(jìn)行nginx反向代理就行 如果不是本地網(wǎng)頁,需要簡單利用工具轉(zhuǎn)為本地網(wǎng)頁 導(dǎo)入 導(dǎo)入,不能使用在線的庫,只能下載到本地才能導(dǎo)入,因?yàn)闀型聪拗?,否則會報(bào)跨域錯(cuò)誤。 下載導(dǎo)入 由于在

    2024年01月17日
    瀏覽(46)
  • 【vue-qrcode + html2canvas】前端二維碼生成與下載

    【vue-qrcode + html2canvas】前端二維碼生成與下載

    其實(shí)一開始搜的時(shí)候,很多還都是推薦的 vue-qrcode ,于是就先用這個(gè),但是發(fā)現(xiàn)想要在二維碼中間放一個(gè)自定義的image的時(shí)候,這個(gè)庫有點(diǎn)麻煩,需要自己將 image 圖片蓋在二維碼上面(官方教程也是如此)。好吧,一開始我也這么干了,但是蓋完之后,我需要下載這個(gè)有居中

    2024年04月17日
    瀏覽(38)
  • vue2如何將頁面生成 pdf 導(dǎo)出 html2Canvas + jspdf

    vue2如何將頁面生成 pdf 導(dǎo)出 html2Canvas + jspdf

    npm i html2canvas npm i jspdf import html2canvas from \\\'html2canvas\\\'; import jsPDF from \\\'jspdf\\\' export const htmlToPDF = async (htmlId, title = \\\"報(bào)表\\\", bgColor = \\\"#fff\\\") = { ? let pdfDom = document.getElementById(htmlId) ? pdfDom.style.padding = \\\'0 10px !important\\\' ? const A4Width = 595.28; ? const A4Height = 841.89; ? let canvas = await html2canvas(pd

    2024年02月16日
    瀏覽(24)
  • (vue)Vue項(xiàng)目中使用jsPDF和html2canvas生成PDF

    (vue)Vue項(xiàng)目中使用jsPDF和html2canvas生成PDF

    效果: 1.:安裝jsPDF和html2canvas 2.在需要生成PDF文檔的組件中引入jsPDF和html2canvas 解決參考: 1.https://www.jianshu.com/p/31d37bef539b 2.https://www.php.cn/faq/556634.html 3.https://blog.csdn.net/m0_54967474/article/details/123820384

    2024年02月10日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包