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

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

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

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

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

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

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

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

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

相當(dāng)?shù)脑敿?xì),有沒有!??!

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

上面這個(gè)操作是避免網(wǎng)絡(luò)狀況不好的時(shí)候canvas畫圖完成了背景圖片確顯示不出來的情況,同時(shí),這個(gè)圖片所在的域名必須在微信公眾平臺(tái)配置一下,代碼如下:

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

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

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

5、下面就是cancas畫圖啦,畫和屏幕一樣寬高的,然后我們?cè)賹懸恍凶止?,代碼如下:

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導(dǎo)出圖片

6、導(dǎo)出圖片,代碼如下:

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],
    })
   }
})

上面這些代碼已經(jīng)完成啦?。。?/p>

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

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

// pages/canvas/canvas.js
Page({
 /**
  * 頁(yè)面的初始數(shù)據(jù)
  */
 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: '圖片鏈接',//注意公眾平臺(tái)是否配置相應(yīng)的域名
   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);
   },
  })
 }
})

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

相關(guān)文章

  • JavaScript實(shí)現(xiàn)帶緩沖效果的隨屏滾動(dòng)漂浮廣告代碼

    JavaScript實(shí)現(xiàn)帶緩沖效果的隨屏滾動(dòng)漂浮廣告代碼

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

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

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

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

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

    基于JavaScript實(shí)現(xiàn)圖片預(yù)覽功能

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

    js表頭排序?qū)崿F(xiàn)方法

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

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

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

    用JavaScript獲取頁(yè)面文檔內(nèi)容的實(shí)現(xiàn)代碼

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

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

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

    JavaScript實(shí)現(xiàn)世界各地時(shí)間顯示

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

    原生js仿淘寶網(wǎng)商品放大鏡效果

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

最新評(píng)論

墨竹工卡县| 丰城市| 镇康县| 罗山县| 大邑县| 恩平市| 万年县| 洞头县| 侯马市| 边坝县| 宜兰市| 大宁县| 吉木乃县| 肥东县| 左云县| 随州市| 桂东县| 包头市| 汉寿县| 麻江县| 西藏| 长沙市| 连城县| 平遥县| 桃江县| 新竹市| 清新县| 临猗县| 胶州市| 墨竹工卡县| 九江县| 大冶市| 弥渡县| 长沙县| 临夏县| 基隆市| 长宁区| 苍山县| 墨竹工卡县| 庐江县| 凉城县|