• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 應用軟件教程 > 詳細頁面

        微信小程序中生成圖片的代碼

        微信小程序中生成圖片的代碼

        更新時間:2025-09-20 文章作者:未知 信息來源:網絡 閱讀次數:

        微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一...
        微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。

        本篇文章給大家帶來的內容是關于微信小程序中生成圖片的代碼,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

        添加畫布

        首先,在小程序里進行繪圖操作需要用到<canvas>組件,步驟大致分為以下3個部分:一張大的背景圖,一段動態的文字(‘標題 用戶名 及其他信息’),以及一個小程序碼圖片。那我們就先在我們的wxml代碼中放入如下的<canvas>:

        <!--wxml代碼-->
        <view style='width:100%;height:100%;' bindlongpress='saveInviteCard'>
          <canvas canvas-id="shareCanvas" style="width:{{windowWidth}}px;height:{{windowHeight}}px" ></canvas>
        </view>

        第三方函數引入

        const util = require('../../utils/util.js')
        //util.js
        var Promise = require('../components/bluebird.min.js')
        
        module.exports = {
          promisify: api => {
            return (options, ...params) => {
              return new Promise((resolve, reject) => {
                const extras = {
                  success: resolve,
                  fail: reject
                }
                api({ ...options, ...extras }, ...params)
              })
            }
          }
        }

        bluebird.min.js大家可自己百度下載,源文件代碼太長,我這里就不復制粘貼了。

        //獲取手機寬高 
        wx.getSystemInfo({
            success: function (res) {
              wc.put('phoneInfo', res)
            }
          });
        
        var windowHeight = phoneInfo.windowHeight, windowWidth = phoneInfo.windowWidth
        self.setData({
           windowHeight: windowHeight,
           windowWidth: windowWidth
         })
        
        //在這段代碼中,我們通過使用wx.getImageInfo這個API來下載一個網絡圖片到本地(并可獲取該圖片的尺寸等其他信息),然后調用ctx.drawImage方法將圖片繪制到畫布上,填滿畫布。
        
        const wxGetImageInfo = util.promisify(wx.getImageInfo)
        //繪制二維碼
        Promise.all([
              //背景圖
              wxGetImageInfo({
                src: 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1536213812443&di=753a0a49acfd390fba9fd7884daafa5c&imgtype=0&src=http%3A%2F%2Fi5.hexunimg.cn%2F2016-08-10%2F185422031.jpg'
              }),
              //二維碼
              wxGetImageInfo({
                src: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1898297765,3486952215&fm=26&gp=0.jpg'
              })
            ]).then(res => {
              console.log(res)
              if (res[0].errMsg == "getImageInfo:ok" && res[1].errMsg == "getImageInfo:ok"){
                const ctx = wx.createCanvasContext('shareCanvas')
        
                // 底圖
                ctx.drawImage(res[0].path, 0, 0, windowWidth, windowHeight)
        
                //寫入文字
                ctx.setTextAlign('center')    // 文字居中
                ctx.setFillStyle('#f3a721')  // 文字顏色:黑色
                ctx.setFontSize(22)         // 文字字號:22px
                ctx.fillText("作者:墜夢—Eric", windowWidth / 2, windowHeight / 2)
        
                // 小程序碼
                const qrImgSize = 150
                ctx.drawImage(res[1].path, (windowWidth - qrImgSize) / 2, windowHeight / 1.8, qrImgSize, qrImgSize)
        
                ctx.stroke()
                ctx.draw()
              }else{
                wx.showToast({
                  title: '邀請卡繪制失敗!',
                  image:'../../asset/images/warning.png'
                })
              }
         })

        這樣,差不多我們的分享圖就生成好了。

        長按圖片保存到系統相冊

        要把它保存進用戶的系統相冊中去,實現這個功能,我們主要靠wx.canvasToTempFilePathwx.saveImageToPhotosAlbum這兩個API。

        主要的流程就是先通過wx.canvasToTempFilePath<canvas>上繪制的圖像生成臨時文件的形式,然后再通過wx.saveImageToPhotosAlbum進行保存到系統相冊的操作。

          //保存邀請卡
          saveInviteCard:function(){
            console.log('保存圖片')
            const wxCanvasToTempFilePath = util.promisify(wx.canvasToTempFilePath)
            const wxSaveImageToPhotosAlbum = util.promisify(wx.saveImageToPhotosAlbum)
        
            wxCanvasToTempFilePath({
              canvasId: 'shareCanvas'
            }, this).then(res => {
              return wxSaveImageToPhotosAlbum({
                filePath: res.tempFilePath
              })
            }).then(res => {
              wx.showToast({
                title: '已保存到相冊'
              })
            })
          }

        相關推薦:

        微信小程序 二維碼canvas繪制實例詳解

        微信小程序canvas基礎詳解

        以上就是微信小程序中生成圖片的代碼的詳細內容,更多請關注php中文網其它相關文章!


        小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 91高清免费国产自产| 青柠影视在线观看免费高清| 182tv免费观看在线视频| 亚洲美女视频一区二区三区| 伊人免费在线观看| 亚洲中文字幕无码不卡电影 | 亚洲av无码片在线观看| 国产成人久久AV免费| 亚洲AV永久精品爱情岛论坛| 免费网站看av片| 亚洲国产精品国自产电影| 91精品视频在线免费观看| 亚洲视频免费在线观看| 2015日韩永久免费视频播放 | 亚洲va在线va天堂va手机| 国产又黄又爽又猛免费app| 亚洲一区在线观看视频| 日本不卡视频免费| 国产AV日韩A∨亚洲AV电影| 亚洲精品一级无码鲁丝片| 国产免费牲交视频免费播放| 97在线观看永久免费视频| 99热亚洲色精品国产88| 日本免费的一级v一片| 免费看内射乌克兰女| 无人在线观看免费高清视频| 亚洲人成人无码.www石榴| 亚洲黄片手机免费观看| a级片免费在线观看| 亚洲成人黄色在线观看| 国产成人涩涩涩视频在线观看免费| 一级黄色免费毛片| 亚洲综合一区二区国产精品| 丁香花在线观看免费观看| 日韩精品无码永久免费网站| 久久91亚洲精品中文字幕| 精品无码国产污污污免费| 91免费国产视频| 亚洲男人天堂2018av| 中国亚洲女人69内射少妇| 国内精自视频品线六区免费|