• <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中文網其它相關文章!


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

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 一级毛片aa高清免费观看| 久久青青草原国产精品免费| 亚洲精品视频在线免费| 久久久亚洲精品国产| 中文字幕免费在线看线人动作大片 | 亚洲天堂电影在线观看| 一级毛片免费观看| 亚洲视频日韩视频| 国产成人精品免费午夜app | 久久亚洲精品成人| 无码囯产精品一区二区免费| 亚洲好看的理论片电影| 亚洲第一网站免费视频| 亚洲Av无码一区二区二三区| 黄网站色视频免费看无下截| 免费一级毛片一级毛片aa| 永久免费无码日韩视频| 国产精品69白浆在线观看免费 | 久久久亚洲欧洲日产国码二区| 18以下岁毛片在免费播放| 亚洲人成免费网站| 久久这里只精品国产免费10| 亚洲资源在线观看| 无码高潮少妇毛多水多水免费| 亚洲人成精品久久久久| 在线亚洲精品视频| 久久精品国产精品亚洲人人| 国产羞羞的视频在线观看免费| 亚洲成人福利网站| 免费在线观看中文字幕| 国产一精品一AV一免费| 亚洲人成www在线播放| 免费大学生国产在线观看p| 免费网站观看WWW在线观看| 国产亚洲精品国看不卡| 7x7x7x免费在线观看| 亚洲成在人线aⅴ免费毛片 | 久久久久久久91精品免费观看 | 亚洲成熟丰满熟妇高潮XXXXX| 狠狠色婷婷狠狠狠亚洲综合 | 国产在线a不卡免费视频|