91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

微信小程序的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

广汉市| 涟源市| 石林| 塔城市| 惠州市| 监利县| 永靖县| 广灵县| 上饶市| 开封市| 南宫市| 东源县| 丽水市| 霍山县| 海阳市| 莱州市| 麦盖提县| 邢台市| 安达市| 宣威市| 青州市| 通江县| 宁波市| 措美县| 怀来县| 高密市| 潮安县| 汝城县| 泰州市| 藁城市| 咸阳市| 秦安县| 夏邑县| 旅游| 安康市| 英德市| 农安县| 阿瓦提县| 西平县| 永靖县| 鄂尔多斯市|