中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

德令哈市| 十堰市| 呼玛县| 呼和浩特市| 仪征市| 邵阳市| 安龙县| 旅游| 隆子县| 汶上县| 阜平县| 天全县| 揭阳市| 延寿县| 营山县| 安吉县| 万山特区| 徐州市| 涪陵区| 游戏| 怀远县| 大冶市| 宁明县| 新兴县| 玉溪市| 金塔县| 八宿县| 大姚县| 潼南县| 邵阳县| 金乡县| 广汉市| 渑池县| 铅山县| 四平市| 凉山| 株洲县| 雷波县| 涪陵区| 太仆寺旗| 宜兰市|