亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序的canvas生成圖片并保存到本地的方法

發布時間:2020-06-15 14:19:21 來源:億速云 閱讀:658 作者:鴿子 欄目:web開發

前言


需求場景:我們知道,微信小程序可以分享給好友或者微信群,不能分享到朋友圈,那分享到朋友圈就需要特殊處理一下,這里我們把小程序和canvas結合起來使用,生成自定義圖片并保存到本地。

代碼


  • wxml文件

<view>
    <button type="default" size="defaultSize" bindtap="exportImg">生成圖片</button>
</view>
<canvas canvas-id="myCanvas"></canvas>
  • js文件

通過canvasAPI繪制

const ctx = wx.createCanvasContext('myCanvas');
//繪制背景圖
ctx.drawImage(res.path, 0, 0, screenWidth, 500);
//繪制背景圖上層的頭像
ctx.save();
ctx.arc(100, 100, 30, 0, 2 * Math.PI);
ctx.clip();
ctx.drawImage(avatarUrl, 50, 50, 110, 110);//根據微信getUserInfo接口獲取到用戶頭像
ctx.restore();
//繪制文字
ctx.setTextAlign('center')
ctx.setFillStyle('#fff')
ctx.setFontSize(16)
ctx.fillText(userInfo.nickName, 100, 180)//用戶昵稱
ctx.stroke()
ctx.draw()

通過wx.canvasToTempFilePath獲取本地路徑

wx.canvasToTempFilePath({
    x: 0,
    y: 0,
    width: 300,
    height: 500,
    canvasId: 'myCanvas',
    success: function (res) {
        console.log(res.tempFilePath);
    }
})

通過wx.saveImageToPhotosAlbum保存圖片到本地

wx.saveImageToPhotosAlbum({
    filePath: tempFilePath,//canvasToTempFilePath返回的tempFilePath
    success: (res) => {
        console.log(res)
    },
    fail: (err) => {}
})

簡單的效果圖


微信小程序的canvas生成圖片并保存到本地的方法

總結

canvasdrawImage方法只支持本地圖片,不支持網絡圖片,所以頭像和背景圖我都用getImageInfo這個方法轉了一下。

通過userInfo獲取的頭像是正方形的,不是需求中的圓形,這里用到了clip()方法,需要配合save()restore(),因為裁剪之后如果不恢復,接下來的繪制都會在那個小區域里面。

此次demo沒有使用生成二維碼的api,有興趣的朋友們可以搞一下。此處是鏈接

以上就是微信小程序-canvas生成圖片并保存到本地的詳細內容,更多請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新巴尔虎右旗| 赤城县| 道真| 栾城县| 蒙阴县| 雅江县| 洱源县| 凤山县| 团风县| 繁昌县| 南开区| 玛沁县| 惠东县| 陈巴尔虎旗| 呼伦贝尔市| 彰武县| 昌宁县| 东城区| 潜江市| 琼结县| 盘锦市| 汶川县| 玛纳斯县| 龙州县| 南投市| 平湖市| 丹巴县| 天峻县| 杭锦后旗| 盐城市| 肥西县| 怀宁县| 江阴市| 阜阳市| 永泰县| 婺源县| 兴国县| 扎鲁特旗| 新沂市| 台江县| 东方市|