shareShop: function(){
let that= this
wx.showLoading({
title: '加載海報(bào)中...',
});
// 1. 請(qǐng)求后端API生成小程序碼
app._post_form(api.getAppletQrCode, {
shopId: that.data.shopId,
width: 100,
page: 'pages/shop-detail/index'
}, function(result) {
if(result.code==100){
that.setData({
dialogShow: true
});
let query = wx.createSelectorQuery()//創(chuàng)建節(jié)點(diǎn)查詢(xún)器 query
let shareCanvas = {}
query.select('#share-canvas').boundingClientRect()//這段代碼的意思是選擇Id= the - id的節(jié)點(diǎn)优构,獲取節(jié)點(diǎn)位置信息的查詢(xún)請(qǐng)求
query.exec(function (res) {
that.setData({
shareCanvas: res[0]
});
shareCanvas = res[0];
const ctx = wx.createCanvasContext('shareCanvas');
let avatarUrl = that.data.shareInfo.userPhotoUrl; //頭像
let bgImgPath = that.data.shareInfo.bgUrl; //封面大圖
// 根據(jù)設(shè)計(jì)圖計(jì)算圖片寬高比列(圖片寬高為一定值)
let bgImgHeight = parseInt(shareCanvas.width*1.45); //封面大圖高度
let avatarHeight = (shareCanvas.height - bgImgHeight) * 0.7;
let codeHeight = (shareCanvas.height - bgImgHeight) * 0.8;
let avatarTop = parseInt(((shareCanvas.height - bgImgHeight - avatarHeight) * 0.5) + bgImgHeight);
let codeTop = parseInt(((shareCanvas.height - bgImgHeight - codeHeight) * 0.5) + bgImgHeight);
let firstX = avatarHeight + 30;
//填充背景(圖片的白色背景)
ctx.setFillStyle('#ffffff');
ctx.fillRect(0, 0, shareCanvas.width, shareCanvas.height);//坐標(biāo)和寬高
// 第一張圖片(封面大圖)
// wx.getImageInfo使用:
// 圖片服務(wù)器的域名加到downloadFile 合法域名
// 圖片需要https安全域名下網(wǎng)址
wx.getImageInfo({
src: bgImgPath,
success: function (bgRes) {
ctx.drawImage(bgRes.path, 0, 0, shareCanvas.width, bgImgHeight);
// 繪制標(biāo)題
ctx.setFontSize(22/that.data.ratio);
ctx.setFillStyle('#000000');
ctx.fillText(that.data.shareInfo.desc_first, firstX, avatarTop + 24/that.data.ratio );
// 繪制內(nèi)容
ctx.setFontSize(22/that.data.ratio);
ctx.setFillStyle('#000000');
ctx.fillText(that.data.shareInfo.desc_second, firstX, avatarTop + 50/that.data.ratio);
ctx.stroke()
// 繪制二維碼文字
// ctx.setFontSize(16/that.data.ratio);
// ctx.setFillStyle('#000000');
// ctx.fillText('長(zhǎng)按掃碼查看', shareCanvas.width - ctx.measureText('長(zhǎng)按掃碼查看').width - 15, shareCanvas.height - 5);
ctx.save();
ctx.beginPath();
// 第二張圖片(花園 頭像)
ctx.arc(avatarHeight*0.5 + 15, avatarTop + avatarHeight*0.5, avatarHeight*0.5, 0, Math.PI * 2, false);
ctx.clip();
wx.getImageInfo({
src: avatarUrl,
success: function (avatar) {
ctx.drawImage(avatar.path, 15, avatarTop, avatarHeight, avatarHeight);
ctx.restore();
// 繪制二維碼getImageInfo不支持顯示base64編碼的圖片
// base64src為外部處理base64編碼并在本地臨時(shí)生成一張圖片的方法
base64src(result.result, base64srcres => {
ctx.drawImage(base64srcres, shareCanvas.width - avatarHeight - 15, codeTop, codeHeight, codeHeight);
ctx.draw();
wx.hideLoading();
});
}
});
}
});
});
}else{
app.showError('網(wǎng)絡(luò)出小差了,請(qǐng)稍后重試...');
}
})
}
小程序生成海報(bào)保存到本地(1)
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門(mén)屯掖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人襟衰,你說(shuō)我怎么就攤上這事贴铜。” “怎么了瀑晒?”我有些...
- 文/不壞的土叔 我叫張陵绍坝,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我苔悦,道長(zhǎng)轩褐,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任玖详,我火速辦了婚禮把介,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蟋座。我一直安慰自己拗踢,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布向臀。 她就那樣靜靜地躺著巢墅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪券膀。 梳的紋絲不亂的頭發(fā)上君纫,一...
- 那天,我揣著相機(jī)與錄音芹彬,去河邊找鬼庵芭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛雀监,可吹牛的內(nèi)容都是我干的双吆。 我是一名探鬼主播眨唬,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼好乐!你這毒婦竟也來(lái)了匾竿?” 一聲冷哼從身側(cè)響起,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蔚万,失蹤者是張志新(化名)和其女友劉穎岭妖,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體反璃,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡昵慌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了淮蜈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斋攀。...
- 正文 年R本政府宣布鹉梨,位于F島的核電站,受9級(jí)特大地震影響穿稳,放射性物質(zhì)發(fā)生泄漏存皂。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一逢艘、第九天 我趴在偏房一處隱蔽的房頂上張望旦袋。 院中可真熱鬧,春花似錦埋虹、人聲如沸猜憎。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)胰柑。三九已至,卻和暖如春爬泥,著一層夾襖步出監(jiān)牢的瞬間柬讨,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓境输,卻偏偏與公主長(zhǎng)得像蔗牡,于是被迫代替她去往敵國(guó)和親颖系。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...