开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開APP
          userphoto
          未登錄

          開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

          開通VIP
          解決使用canvas生成含有微信頭像的邀請(qǐng)海報(bào)沒有微信頭像

              最近做了一個(gè)微信內(nèi)訪問的H5頁(yè)面,長(zhǎng)按分享圖片發(fā)送朋友邀請(qǐng)的海報(bào),網(wǎng)上搜索資料,得出解決思路,用canvas將頁(yè)面繪制生成圖片,

              問題:canvas 圖片跨域。

              解決過程(填坑歷程): 

              1.從網(wǎng)上存在如圖解決辦法     img.crossOrigin  = ""   (專業(yè)采坑,數(shù)年)。親測(cè)無效。很是不解。

              

              

              2.網(wǎng)上也存在后端服務(wù)解決

             設(shè)置header頭,或者nginx 服務(wù)配置等 允許訪問。但是,存在問題(圖片大部分為了優(yōu)化,都會(huì)存放在第三方cdn.上面。這是第三方的配置,是否允許,自己很難控制)

           

              3.解決辦法:采用所有圖片路徑,轉(zhuǎn)化為base64流來處理。圖片存為本地圖片。這也可以就避開了跨域問題。

           

              最后個(gè)人解決方法:沒有采用第3種保存本地,這樣會(huì)增加本地圖片,而且會(huì)存在本地跟微信端沒有同步更新的問題,不是用戶最新的頭像。個(gè)人是采用遠(yuǎn)程下載后直接繪制輸出圖片,這樣圖片就變成本地圖片,解決canvas繪制圖片不支持跨域問題。

             wxheadimg.aspx 頁(yè)面代碼:

                  if (!string.IsNullOrEmpty(Request.QueryString["data"].ToString()))        {            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Request.QueryString["data"].ToString());            request.Timeout = 3000;            WebResponse response = request.GetResponse();            Stream stream = response.GetResponseStream();            Bitmap image = new Bitmap(stream);            //保存為PNG到內(nèi)存流              MemoryStream ms = new MemoryStream();            image.Save(ms, ImageFormat.Png);            //重新輸出頭像            Response.BinaryWrite(ms.GetBuffer());            Response.End();            ms.Close();            response.Close();            stream.Close();        }

              canvas繪制頁(yè)面引用:<img src="wxheadimg.aspx?data=headimgurl" />

               

              canvas繪制代碼也順便弄出來:

          <script type="text/javascript">window.onload = function (){    var IMAGE_URL;    function takeScreenshot(){        var shareContent = document.getElementById('shareMember');//需要截圖的包裹的(原生的)DOM 對(duì)象        var width = shareContent.offsetWidth; //獲取dom 寬度        var height = shareContent.offsetHeight; //獲取dom 高度        var canvas = document.createElement("canvas"); //創(chuàng)建一個(gè)canvas節(jié)點(diǎn)        var scale = 1; //定義任意放大倍數(shù) 支持小數(shù)        canvas.width = width * scale; //定義canvas 寬度 * 縮放        canvas.height = height * scale; //定義canvas高度 *縮放        canvas.getContext("2d").scale(scale, scale); //獲取context,設(shè)置scale        //var rect = shareContent.getBoundingClientRect();//獲取元素相對(duì)于視察的偏移量        //canvas.getContext("2d").translate(-rect.left, -rect.top);//設(shè)置context位置,值為相對(duì)于視窗的偏移量負(fù)值,讓圖片復(fù)位        var opts = {            scale:scale, // 添加的scale 參數(shù)            canvas:canvas, //自定義 canvas            logging: true, //日志開關(guān)            width:width, //dom 原始寬度            height:height, //dom 原始高度            backgroundColor: 'transparent',        };        html2canvas(shareContent, opts,{useCORS:true,logging:true}).then(function (canvas)        {            IMAGE_URL = canvas.toDataURL("image/png");            $('.copyImage').attr('src',IMAGE_URL);        })    }    takeScreenshot();}</script>

              頁(yè)面代碼 :

              <div class="shareBox" id="shareMember">		<div class="top">			<div class="logo"><img src="wxheadimg.aspx?data=微信頭像網(wǎng)址"/></div>		</div>        <div class="middle">            <img src="makeQRCode.aspx?data=二維碼內(nèi)容" class="qrcode" />        </div>        <img src="" class="copyImage">    </div>.shareBox{position:relative}.shareBox .copyImage{position:absolute;top:0px;left:0px;z-index:999;opacity:0;height:666px;width:666px;}

            

              最后: 人人為我,我為人人,美美與共

          本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
          打開APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          基于html2canvas實(shí)現(xiàn)網(wǎng)頁(yè)保存為圖片及圖片清晰度優(yōu)化
          初探JavaScript的截屏實(shí)現(xiàn)
          javascript-DOM安全異常18:受污染的畫布
          手把手教你利用JS給圖片打馬賽克
          HTML/CSS/JS編碼規(guī)範(fàn) – 人人網(wǎng)FED博客
          解決canvas轉(zhuǎn)base64/jpeg時(shí)透明區(qū)域變成黑色背景的方法
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
          綁定賬號(hào)成功
          后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點(diǎn)擊這里聯(lián)系客服!

          聯(lián)系客服