|   
 導讀微信小程序,簡稱小程序,英文名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'
        })
      }
 })這樣,差不多我們的分享圖就生成好了。 長按圖片保存到系統相冊要把它保存進用戶的系統相冊中去,實現這個功能,我們主要靠 主要的流程就是先通過   //保存邀請卡
  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: '已保存到相冊'
      })
    })
  }相關推薦: 以上就是微信小程序中生成圖片的代碼的詳細內容,更多請關注php中文網其它相關文章! 小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。  | 
溫馨提示:喜歡本站的話,請收藏一下本站!