成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

微信小程序中如何生成圖片

這篇文章給大家分享的是有關(guān)微信小程序中如何生成圖片的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),富民企業(yè)網(wǎng)站建設(shè),富民品牌網(wǎng)站建設(shè),網(wǎng)站定制,富民網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,富民網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

添加畫布

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

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

第三方函數(shù)引入

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大家可自己百度下載,源文件代碼太長,我這里就不復(fù)制粘貼了。

//獲取手機寬高 
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來下載一個網(wǎng)絡(luò)圖片到本地(并可獲取該圖片的尺寸等其他信息),然后調(diào)用ctx.drawImage方法將圖片繪制到畫布上,填滿畫布。

const wxGetImageInfo = util.promisify(wx.getImageInfo)
//繪制二維碼
Promise.all([
      //背景圖
      wxGetImageInfo({
        src: '/upload/otherpica42/13973.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'
        })
      }
 })

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

長按圖片保存到系統(tǒng)相冊

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

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

  //保存邀請卡
  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: '已保存到相冊'
      })
    })
  }

感謝各位的閱讀!關(guān)于“微信小程序中如何生成圖片”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

網(wǎng)頁題目:微信小程序中如何生成圖片
文章源于:http://jinyejixie.com/article48/iehdhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)云服務(wù)器、網(wǎng)站建設(shè)、微信小程序、營銷型網(wǎng)站建設(shè)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
兖州市| 肥城市| 江西省| 名山县| 永善县| 壤塘县| 正阳县| 衢州市| 红桥区| 铜梁县| 安达市| 得荣县| 上犹县| 左权县| 姚安县| 武平县| 施甸县| 霍邱县| 兴海县| 曲周县| 济南市| 中江县| 平利县| 新和县| 东乡族自治县| 山东| 新巴尔虎右旗| 遂溪县| 恭城| 集安市| 安福县| 德安县| 双鸭山市| 成武县| 方城县| 襄城县| 镶黄旗| 新巴尔虎左旗| 浙江省| SHOW| 年辖:市辖区|