最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序使用canvas的畫圖操作示例

 更新時間:2019年01月18日 11:32:13   作者:impossible1994727  
這篇文章主要介紹了微信小程序使用canvas的畫圖操作,結合實例形式較為詳細的分析了微信小城序基于canvas的畫圖操作相關實現技巧與操作注意事項,需要的朋友可以參考下

本文實例講述了微信小程序使用canvas的畫圖操作。分享給大家供大家參考,具體如下:

基礎寫起來太沒動力了,也寫得亂七八糟的,還是直接解決一些小問題比較方便,代碼的方方面面的細節(jié)都會詳盡的解釋一下。

1、下面介紹一下canvas的畫圖,我這個簡單一點,畫一個帶圖文的背景圖,圖片可以從后臺獲取也可以選擇本地的。canvas畫圖首先要在wxml里面新建一個<canvas>標簽,一定要寫上canvas-id='canvas的id',這是必須條件,如下面代碼:

<canvas canvas-id='canvas' style='width:{{windowW}}px;height:{{windowH}}px'></canvas>
<button bindtap='chooseImage'>相冊</button>

2、上面canvas的寬高都是js控制的,使用?wx.getSystemInfo獲取屏幕的可見寬高。代碼如下:

wx.getSystemInfo({
   success: function (res) {
    that.setData({
     windowW: res.windowWidth,
     windowH: res.windowHeight
    })
   },
})

相當的詳細,有沒有!??!

3、重點注意一下:在微信小程序的canvas畫圖中如果使用了網絡圖片,一定要先把這張圖片讀取下載下來(可使用wx.downloadFile),存為網絡格式的圖片!?。?/p>

上面這個操作是避免網絡狀況不好的時候canvas畫圖完成了背景圖片確顯示不出來的情況,同時,這個圖片所在的域名必須在微信公眾平臺配置一下,代碼如下:

wx.downloadFile({
   url: '圖片路徑',
   success: function (res) {
    that.setData({
     canvasimgbg: res.tempFilePath
    })
   }
})

4、 我上面wxml代碼里面寫了一個按鈕,使用wx.chooseImage調用了系統(tǒng)相冊,所以說,我們選擇一張圖片畫進canvas也是可以的,代碼如下:

wx.chooseImage({
   success: function (res) {
    that.setData({
     chooseimg: res.tempFilePaths[0]
    })
   },
})

5、下面就是cancas畫圖啦,畫和屏幕一樣寬高的,然后我們再寫一行字哈哈哈,代碼如下:

var that = this;
var windowW = that.data.windowW;
var windowH = that.data.windowH;
var canvasimgbg = that.data.canvasimgbg;
var canvasimg1 = that.data.chooseimg;
canvas.drawImage(canvasimgbg, 0, 0, windowW, windowH);
canvas.drawImage(canvasimg1, 0, 10, 200, 200);
canvas.setFontSize(50)
canvas.fillText('Hello', 200, 200)
canvas.draw(true,setTimeout(function(){
   that.daochu()
},1000));

使用canvas.draw()畫圖,完畢之后直接wx.canvasToTempFilePath導出圖片

6、導出圖片,代碼如下:

var that = this;
var windowW = that.data.windowW;
var windowH = that.data.windowH;
wx.canvasToTempFilePath({
   x: 0,
   y: 0,
   width: windowW,
   height: windowH,
   destWidth: windowW,
   destHeight: windowH,
   canvasId: 'canvas',
   success: function (res) {
    console.log(res)
    wx.saveImageToPhotosAlbum({
     filePath: res.tempFilePath,
     success(res) {
     }
    })
    wx.previewImage({
     urls: [res.tempFilePath],
    })
   }
})

上面這些代碼已經完成啦?。?!

主要就是各位使用的時候看需要什么樣的啦!

下面還是附上完整的代碼把!

// pages/canvas/canvas.js
Page({
 /**
  * 頁面的初始數據
  */
 data: {
 },
 onLoad: function (options) {
  var that = this;
  that.sys();
  that.bginfo();
 },
 sys: function () {
  var that = this;
  wx.getSystemInfo({
   success: function (res) {
    that.setData({
     windowW: res.windowWidth,
     windowH: res.windowHeight
    })
   },
  })
 },
 bginfo: function () {
  var that = this;
  wx.downloadFile({
   url: '圖片鏈接',//注意公眾平臺是否配置相應的域名
   success: function (res) {
    that.setData({
     canvasimgbg: res.tempFilePath
    })
   }
  })
 },
 canvasdraw: function (canvas) {
  var that = this;
  var windowW = that.data.windowW;
  var windowH = that.data.windowH;
  var canvasimgbg = that.data.canvasimgbg;
  var canvasimg1 = that.data.chooseimg;
  canvas.drawImage(canvasimgbg, 0, 0, windowW, windowH);
  canvas.drawImage(canvasimg1, 0, 10, 200, 200);
  canvas.setFontSize(50)
  canvas.fillText('Hello', 200, 200)
  canvas.draw(true,setTimeout(function(){
   that.daochu()
  },1000));
  // canvas.draw();
 },
 daochu: function () {
  console.log('a');
  var that = this;
  var windowW = that.data.windowW;
  var windowH = that.data.windowH;
  wx.canvasToTempFilePath({
   x: 0,
   y: 0,
   width: windowW,
   height: windowH,
   destWidth: windowW,
   destHeight: windowH,
   canvasId: 'canvas',
   success: function (res) {
    console.log(res)
    wx.saveImageToPhotosAlbum({
     filePath: res.tempFilePath,
     success(res) {
     }
    })
    wx.previewImage({
     urls: [res.tempFilePath],
    })
   }
  })
 },
 chooseImage: function () {
  var that = this;
  var canvas = wx.createCanvasContext('canvas');
  wx.chooseImage({
   success: function (res) {
    that.setData({
     chooseimg: res.tempFilePaths[0]
    })
    that.canvasdraw(canvas);
   },
  })
 }
})

希望本文所述對大家微信小程序開發(fā)有所幫助。

相關文章

  • JavaScript實現帶緩沖效果的隨屏滾動漂浮廣告代碼

    JavaScript實現帶緩沖效果的隨屏滾動漂浮廣告代碼

    這篇文章主要介紹了JavaScript實現帶緩沖效果的隨屏滾動漂浮廣告代碼,通過JavaScript結合時間函數動態(tài)響應頁面元素滾動事件實現懸浮廣告的緩沖漂浮效果,非常簡單實用,需要的朋友可以參考下
    2015-11-11
  • javascript browser瀏覽器類型以及版本判斷代碼

    javascript browser瀏覽器類型以及版本判斷代碼

    在團隊js框架建設過程中寫的一段瀏覽器判斷代碼,喜歡的朋友可以參考下。
    2010-04-04
  • BootStrap中的模態(tài)框(modal,彈出層)功能示例代碼

    BootStrap中的模態(tài)框(modal,彈出層)功能示例代碼

    bootstrap中的模態(tài)框(modal),不同于Tooltips,模態(tài)框以彈出對話框的形式出現,具有最小和最實用的功能集。這篇文章主要介紹了BootStrap中的模態(tài)框(modal,彈出層),需要的朋友可以參考下
    2018-11-11
  • 基于JavaScript實現圖片預覽功能

    基于JavaScript實現圖片預覽功能

    在本文中,我們將學習如何使用 JavaScript 實現一個簡單的圖片預覽功能,我們將使用 HTML、CSS 和 JavaScript 來創(chuàng)建一個用戶界面,用戶可以輸入圖片 URL 并實時預覽圖片,感興趣的小伙伴跟著小編一起來看看吧
    2024-07-07
  • js表頭排序實現方法

    js表頭排序實現方法

    這篇文章主要介紹了js表頭排序實現方法,涉及數字、字母、字符串比較及排序等操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • window resize和scroll事件的基本優(yōu)化思路

    window resize和scroll事件的基本優(yōu)化思路

    在項目中使用scroll事件去加載數據,結果IE下悲劇了。下面為大家介紹下window resize和scroll事件的基本優(yōu)化思路,需要的朋友可以參考下
    2014-04-04
  • 用JavaScript獲取頁面文檔內容的實現代碼

    用JavaScript獲取頁面文檔內容的實現代碼

    下面小編就為大家?guī)硪黄肑avaScript獲取頁面文檔內容的實現代碼。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 深入理解JavaScript系列(35):設計模式之迭代器模式詳解

    深入理解JavaScript系列(35):設計模式之迭代器模式詳解

    這篇文章主要介紹了深入理解JavaScript系列(35):設計模式之迭代器模式詳解,迭代器模式(Iterator):提供一種方法順序一個聚合對象中各個元素,而又不暴露該對象內部表示,需要的朋友可以參考下
    2015-03-03
  • JavaScript實現世界各地時間顯示

    JavaScript實現世界各地時間顯示

    這篇文章主要為大家詳細介紹了javaScript實現世界各地時間顯示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 原生js仿淘寶網商品放大鏡效果

    原生js仿淘寶網商品放大鏡效果

    本文主要介紹了原生js仿淘寶網商品放大鏡效果的實例,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02

最新評論

锡林郭勒盟| 张掖市| 靖江市| 浑源县| 南江县| 南投县| 洮南市| 安图县| 翁源县| 天气| 辽源市| 西安市| 阳城县| 大城县| 丹巴县| 宜州市| 江安县| 钦州市| 类乌齐县| 大宁县| 安图县| 广平县| 辛集市| 达尔| 韩城市| 万盛区| 岑巩县| 甘德县| 黔江区| 日照市| 馆陶县| 大关县| 苍南县| 黔西| 腾冲县| 新昌县| 定州市| 花垣县| 扎赉特旗| 军事| 芜湖县|