微信小程序canvas繪制圓角base64圖片的實(shí)現(xiàn)
接口返回base64格式小程序二維碼,以往的做法是需要再調(diào)一個(gè)接口去拿到j(luò)pg/png格式的圖片。如果沒有這個(gè)接口呢,是不是也可以?然而小程序canvas并不支持直接使用base64繪制,好在小程序的文件系統(tǒng)提供了方法,可以把base64經(jīng)過進(jìn)一步處理轉(zhuǎn)成本地圖片。
獲取base64格式圖片
getXcxQrcode() {
wx.request({
url: app.globalData.globalUrl + "/get_wx_code",
data: {
token: app.globalData.weixin_token,
scene: app.globalData.page_key,
page: "pages/index/index"
},
success: (res) => {
if (data.data.success) {
this.base64src(data.data)
}
}
})
}
base64格式圖片轉(zhuǎn)換成本地圖片
base64src(base64data) {
const filePath = `${wx.env.USER_DATA_PATH}/tmpbase64.png`;
const buffer = wx.base64ToArrayBuffer(base64data.buffer);
let that = this;
fsm.writeFile({
filePath,
data: buffer,
encoding: 'binary',
success() {
that.setData({
qrcodeUrl: filePath // 得到http://usr/tmpbase64.png
})
},
fail() {
reject(new Error('ERROR_BASE64SRC_WRITE'));
},
});
},
使用獲得的本地圖片繪制圓角二維碼
var qrW = 150; //繪制的二維碼寬度 var qrH = 150; //繪制的二維碼高度 var qr_x = 540; //繪制的二維碼在畫布上的位置 var qr_y = 960; //繪制的二維碼在畫布上的位置 ctx.save(); ctx.beginPath(); //開始繪制 //先畫個(gè)圓 前兩個(gè)參數(shù)確定了圓心 (x,y) 坐標(biāo) 第三個(gè)參數(shù)是圓的半徑 四參數(shù)是繪圖方向 默認(rèn)是false,即順時(shí)針 ctx.arc(qrW / 2 + qr_x, qrH / 2 + qr_y, qrW / 2, 0, Math.PI * 2, false); ctx.clip(); //畫好了圓 剪切 原始畫布中剪切任意形狀和尺寸。一旦剪切了某個(gè)區(qū)域,則所有之后的繪圖都會(huì)被限制在被剪切的區(qū)域內(nèi) 這也是我們要save上下文的原因 ctx.drawImage(this.data.qrcodeUrl, qr_x, qr_y, qrW, qrH); ctx.draw()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
將html頁面保存成圖片,圖片寫入pdf的實(shí)現(xiàn)方法(推薦)
下面小編就為大家?guī)硪黄獙tml頁面保存成圖片,圖片寫入pdf的實(shí)現(xiàn)方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09
使用JavaScript實(shí)現(xiàn)alert的實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了js實(shí)現(xiàn)alert的方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-07-07
CSS+Js遮罩效果的TAB及焦點(diǎn)圖片切換(推薦)
CSS+Js圖片切換技術(shù),類似的已有不少了,這一個(gè)使用了遮罩過渡的效果,同樣應(yīng)用到了TAB選項(xiàng)卡上,本頁面僅是為了演示,大家用時(shí)候把它拆分開來,這個(gè)效果也對(duì)學(xué)習(xí)圖片效果制作很有幫助。2009-11-11
關(guān)于RxJS Subject的學(xué)習(xí)筆記
這篇文章主要介紹了關(guān)于RxJS Subject的學(xué)習(xí)筆記,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12
解決function函數(shù)內(nèi)的循環(huán)變量
鼠標(biāo)放到指定的行上自動(dòng)彈出當(dāng)前的個(gè)數(shù),從0開始,這個(gè)功能方便我們?cè)趖ab切換中定位2008-10-10
javascript replace()正則替換實(shí)現(xiàn)代碼
javascript-replace()基礎(chǔ),一次完成將"<,>"替換"<>"實(shí)例2010-02-02
JavaScript中輸出</script>標(biāo)簽的方法
這篇文章主要介紹了JavaScript中輸出</script>標(biāo)簽的方法,在一些廣告代碼中經(jīng)常會(huì)用到這個(gè)小技巧,需要的朋友可以參考下2014-08-08

