首頁 >微信小程式 >小程式開發 >小程式之如何實現朋友圈圖片的生成

小程式之如何實現朋友圈圖片的生成

不言
不言原創
2018-07-14 15:20:063278瀏覽

 這篇文章主要介紹了關於小程式之如何實現朋友圈圖片的生成,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

  微信的小程式是沒有分享到朋友圈的功能的。小程式目前只能分享到群組或發給好友。但業務需要方便推廣,需要分享到朋友圈。

經過度娘後,得出了以下想法:利用小程式canvas繪製圖片,將背景圖和二維碼繪製成一張圖片。百度過幾個好的demo,參考了一下,本以為會很簡單就解決這個問題,然而這個並不是小程式canvas的難點!

  WXML

  <view class=&#39;canvas-box&#39;>
    <canvas style="width:750rpx; height:940rpx;" canvas-id="myCanvas"/>
    <image src=&#39;{{imagePath}}&#39;></image>  
  </view>

519d136da5c03418e1e944c2c050d1c2產生朋友圈分享圖65281c5ac262bf6d81768915a4a77ac0、

這是觸發canvas的按鈕

  繪製長按識別二維碼

  settext: function (context) {
    let _this = this;    
    var size  = _this.setCanvasSize();    
    var text  = "长按识别小程序";
    context.setFontSize(12);
    context.setTextAlign("center");
    context.setFillStyle("#000");
    context.fillText(text, size.w / 2, size.h * 0.90);
    context.stroke();
  },

    繪製圖片

createNewImg: function () {    
var _this       = this;    
var size        = _this.setCanvasSize();    
var context     = wx.createCanvasContext(&#39;myCanvas&#39;);    
var path        = "/assets/images/qrshare1.jpg";  //测试的图片    
var imageQrCode = _this.data.filePath;       //二维码
    context.drawImage(path, 0, 0, size.w, size.h);
    context.drawImage(imageQrCode, size.w / 2 - 55, size.h * 0.55, size.w * 0.33, size.w * 0.33);    
    this.settext(context);    //绘制图片    
    context.draw();    //将生成好的图片保存到本地,需要延迟一会,绘制期间耗时    
    wx.showToast({
      title   : &#39;生成中...&#39;,
      icon    : &#39;loading&#39;,
      duration: 2000
    });
    setTimeout(function () {
      wx.canvasToTempFilePath({
        canvasId: &#39;myCanvas&#39;,
        success : function (res) {          
        var tempFilePath = res.tempFilePath;
          _this.setData({
            imagePath   : tempFilePath,
          });     
          var img  = _this.data.imagePath;
          let urls = []
          urls.push(img, &#39;二维码路径&#39;)   //二维码路径是为了用户也可以保存二维码,分享到朋友圈有合成的图片也有二维码(参考拉钩小程序分享)
          wx.previewImage({
            current: img,  // 当前显示图片的http链接
            urls   : urls  // 需要预览的图片http链接列表          })
        },
        fail: function (res) {
          console.log(res);
        }
      });
    }, 2000);
  },

本來我是直接繪製網路圖片的,但是在真機上,網路圖片不顯示!於是百度了一下,可以先下載,接口返回的圖片再繪製

//生成朋友圈图片  createSharePic() {
    let _this = this,
        qrcode= _this.data.qrcode
    wx.downloadFile({
      url    : qrcode,
      success: function (res) {        
      if (res.statusCode === 200) {
          _this.setData({
            filePath: res.tempFilePath,
          })
          _this.createNewImg();
        }
      }
    })
    
  }

問題出來了,本地上測試沒問題,遠端調試也沒問題,可以產生圖片儲存到手機

 

 

納悶了一會兒之後,我發現自己沒有後台新增download的下載網域。因為平常在本地的都是勾選了不檢查網域。所以在這納悶了很久! ! ! ! ! ! !

總結:

小程式canvas不好控制,寫樣式時用rpx,canvas用px;

網路圖片不顯示(我用網路圖片時,是不顯示,不確定這個問題是我的操作問題還是小程式的限制,希望大佬們可以給我個肯定的結論)

要在微信後台設定downloand下載網域(我這裡用了下載後繪製的方法,如果大家有不用下載的方法,望告知!謝謝)

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

小程式之如與使用view內部元件來進行頁面的排版功能

小程式之使用for循環綁定item的點擊事件的實作

#

以上是小程式之如何實現朋友圈圖片的生成的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn