微信服務號,生成二維碼海報,長按保存到相冊,直接微信轉發(fā)給朋友

html:

<div class="posterDiv" id="posterBody">

<img class="top hidden" id="topImg" src="/h5demo-green/image/activity/top_.jpg" alt="">

<img class="erweima hidden" id="erweimaImg" src="" alt="">

<img class="bottom hidden" id="bottomImg" src="/h5demo-green/image/activity/bottom_.jpg" alt="">

<div id="canvas1" style="width: 140px;height: 140px;display: none"></div>

<canvas id="myCanvas" class="myCanvas"></canvas>

<img src="" alt="" id="save_img">

<div class="down">長按轉發(fā)或保存<a class="downBt hidden"?></a></div>

</div>

<script src="/js/zepto.min.js"></script>

<script src="/js/qrcode.min.js"></script>

<script src="/js/poster.js"></script>

++++++++++++++++++++++++++++

重點來了。poster.js代碼如下

先解釋一下思路,

第一步:先調用qrcode.min.js,把掃碼二維碼需要跳轉的鏈接(如我的代碼中的‘http://www.baidu.com’),生成一個二維碼,把二維碼轉成canvas格式(如我的代碼中的canvas1)。

第二步:把這個canvas1轉成img圖片

第三步:把這個img重新畫在一個新的canvas上,(如我的代碼中的myCanvas)

第四步:把這個myCanvas轉成img圖片,大功告成?。。?/p>

此時生成的圖片,是帶有二維碼的圖片,在微信中,包括服務號,包括聊天窗口,都可以長按保存到本地相冊,都可以長按識別二維碼,都可以長按分享到微信朋友或者微信聊天群!!!!

window.onpageshow = function()?{??

??????? var url='http://www.baidu.com';???????//掃碼二維碼跳轉的鏈接

???????? makeCode(url,function ()?{

??????????????????? createErWei(function ()?{

??????????????????????? createCanvas(‘小明’,‘001’);

????????????????????})

????????????????});??

};

function makeCode (erweiUrl,callback)?{

??? var qrcode = new QRCode('canvas1',?{

??????? width: 200,

??????? height:200,

????});

??? qrcode.makeCode(erweiUrl);

??? if(callback){

??????? window.setTimeout(function ()?{

??????????? callback();

????????},500);

????}

}

function createErWei(callback)?{

??? var can1=GLOBAL_G.getId('canvas1').getElementsByTagName('img')[0].src;

??? GLOBAL_G.getId('erweimaImg').src=can1;

??? if(callback){

??????? window.setTimeout(function ()?{

??????????? callback();

????????},200);

????}

}

function createCanvas(name,adminId){

??? var deviceWidth = document.documentElement.clientWidth;

??? var stageScale=deviceWidth/750;???

??? var c=document.getElementById("myCanvas");

??? c.width = 670*stageScale;

??? c.height = 1086*stageScale;

??? c.style.display='none';

??????????? var ctx=c.getContext("2d");

??????????? var img = GLOBAL_G.getId('topImg'),

??????????? imgW=img.width*stageScale,

??????????? imgH =img.height*stageScale;

??????????? ctx.drawImage(img,0,0,imgW,imgH);

??????????? var img3 = GLOBAL_G.getId('bottomImg'),

??????????? imgW3=img3.width*stageScale,

??????????? imgH3=img3.height*stageScale;

??????????? ctx.drawImage(img3,0,imgH,imgW3,imgH3);

??????????? var img2=GLOBAL_G.getId('erweimaImg');

??????????? img2.width=200*stageScale;

??????????? img2.height=200*stageScale;

??????????? var imgW2=img2.width,

??????????? imgH2 =img2.height;

????????ctx.drawImage(img2,10,imgH+10,imgW2,imgH2);

??????????? ctx.fillStyle="#000";

??????????? ctx.font="16px Arial";

??????????? var x1=234*stageScale,y1=(762+38)*stageScale;

???????????? tempSrc = c.toDataURL();

??????????? var newImg = document.getElementById("save_img");

??????????? newImg.src=tempSrc;

}

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容