国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序新版canvas繪制圖片方法

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序新版canvas繪制圖片方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

今天在做項(xiàng)目使用到了canvas繪制二維碼,發(fā)現(xiàn)以前的方法被棄用了。

wxml:

<canvas type="2d" id="myCanvas" style="width: 100%;height: 100vh"></canvas>

如果想要繪制需要將起臨時(shí)存儲(chǔ)起來,寫入成功的就可以進(jìn)行繪制了。(如果是點(diǎn)擊展示二維碼,最好是先將數(shù)據(jù)寫到onLoad事件中,在將要繪制的東西寫到點(diǎn)擊事件中去,在點(diǎn)擊事件中去獲取數(shù)據(jù));

js:

Page({
  onReady:function () {
    const query = wx.createSelectorQuery()
    query.select('#myCanvas')
      .fields({ node: true, size: true })
      .exec((res) => {
        const canvas = res[0].node
        const ctx = canvas.getContext('2d')
        const dpr = wx.getSystemInfoSync().pixelRatio
        canvas.width = res[0].width * dpr     // 獲取寬
        canvas.height = res[0].height * dpr  // 獲取高
        ctx.scale(dpr, dpr)
        
        // 到這里就可以直接繪制
         let image = canvas.createImage();//創(chuàng)建iamge實(shí)例
        image.src = '引入本地的圖片背景圖';  // 引入本地圖片
        image.onload = function () {
          ctx.drawImage(image, 0, 0, 289, 370); // 背景圖

  }
})

繪制base64圖片

// 繪制base64圖片
          //聲明文件系統(tǒng)
          const fs = wx.getFileSystemManager();
          var times = new Date().getTime();
          var codeimg = wx.env.USER_DATA_PATH + '/' + times + '.png';
          //將base64圖片寫入
          fs.writeFile({
            filePath: codeimg,
            data: code.slice(22),  // code就是接口返回的base64數(shù)據(jù)(分割掉前面的data:image/png;base64,)
            encoding: 'base64',
            success: () => {
              console.log(codeimg);
              wx.createSelectorQuery().select('#myCanvas').fields({ node: true, size: true })
                .exec((res) => {
                  let ctx = res[0].node.getContext('2d');//getContext返回Canvas 的繪圖上下文
                  let canvas = res[0].node;
                  const bg = canvas.createImage();
                  bg.src = codeimg;
                  bg.onload = function () {
                    ctx.drawImage(bg, 76, 175, 140, 140);
                  }
                })
            }
          });

        }
        
      })

尺寸可以根據(jù)自己的需要進(jìn)行更改。

長按保存到本地(在真機(jī)測試中用bindlongtap不生效),可以換成catchlongtap。如果繪制的canvas再外面可以在渲染畫布的上面聲明一個(gè)變量等于this。????var?_this?=?this;

在寫入文件中設(shè)置_this.setData({_this:canvas});

 fs.writeFile({
            filePath: codeimg,
            data: code.slice(22),
            encoding: 'base64',
            success: () => {
              wx.createSelectorQuery().select('#myCanvas').fields({ node: true, size: true })
                .exec((res) => {
                  let ctx = res[0].node.getContext('2d');//getContext返回Canvas 的繪圖上下文
                  let canvas = res[0].node;
                  const bg = canvas.createImage();
                  bg.src = codeimg;
                  bg.onload = function () {
                    ctx.drawImage(bg, 76, 175, 140, 140);
                  }
                // 設(shè)置
                  _this.setData({
                    _this: canvas
                  })
                })
            }
          });

在長按保存事件中(catchlongtap),將canvas = 畫布this.data._this文章來源地址http://www.zghlxwxcb.cn/news/detail-507940.html

wx.canvasToTempFilePath({
      // 把畫布轉(zhuǎn)化成臨時(shí)文件
      x: 0,
      y: 0,
      width: 380, // 截取的畫布的寬
      height: 600, // 截取的畫布的高
      destWidth: 380, // 保存成的畫布寬度
      destHeight: 600, // 保存成的畫布高度
      fileType: 'png', // 保存成的文件類型
      quality: 1, // 圖片質(zhì)量
      canvas: this.data._this, // 畫布
      success(res) {
        console.log(res);
        // 2-保存圖片至相冊
        wx.saveImageToPhotosAlbum({
          // 存成圖片至手機(jī)
          filePath: res.tempFilePath,
          success(res2) {
            wx.hideLoading();
            wx.showToast({
              title: '保存成功',
              duration: 2000
            });
          },
          fail(res3) {
            if (res3.errMsg === 'saveImageToPhotosAlbum:fail auth deny') {
              wx.showToast({
                title: '保存失敗,稍后再試',
                duration: 2000,
                icon: 'none'
              });
              wx.hideLoading();
            } else {
              wx.showToast({
                title: '保存失敗,稍后再試',
                duration: 2000,
                icon: 'none'
              });
              wx.hideLoading();
            }
          }
        });
      },
      fail(err) {
        console.log(err);
        wx.showToast({
          title: '保存失敗,稍后再試',
          duration: 2000,
          icon: 'none'
        });
        wx.hideLoading();
      }
    });
  }

到了這里,關(guān)于微信小程序新版canvas繪制圖片方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序canvas畫布繪制文字自動(dòng)換行

    關(guān)鍵步驟介紹: text為需要繪制的文本,通過換行符將text分割為words數(shù)組。 basic_height為第一行文本的高度。 get_canvas_row函數(shù)根據(jù)行寬限制將輸入文本轉(zhuǎn)化為不同的行,實(shí)現(xiàn)見下文。 text_size為設(shè)置的文本高度,h+text_size*j為每行待繪制文本的高度,繪制完成后更新h。 get_canvas_

    2024年01月17日
    瀏覽(23)
  • 微信小程序canvas畫圖案列,實(shí)現(xiàn)生成頭像并保存,小程序新版canvas變化,小程序中canvas注意事項(xiàng)

    微信小程序canvas畫圖案列,實(shí)現(xiàn)生成頭像并保存,小程序新版canvas變化,小程序中canvas注意事項(xiàng)

    你一定見過很多制作頭像的小程序,無論是國慶的紅旗,圣誕的帽子,還是疫情的口罩,都可以用小程序生成應(yīng)景的頭像,那么具體的代碼是怎么實(shí)現(xiàn)的呢?前些天幫別人做了一個(gè)生成姓氏頭像的功能,里面的實(shí)現(xiàn)原理基本一致,都是通過Canvas實(shí)現(xiàn),以生成姓氏頭像為例,記錄一下小程序的

    2024年02月09日
    瀏覽(20)
  • 微信小程序使用canvas繪制海報(bào)并保存本地相冊

    微信小程序使用canvas繪制海報(bào)并保存本地相冊

    在做微信小程序的時(shí)候,很多都會(huì)用到生成海報(bào)分享功能,剛好最近項(xiàng)目有這個(gè)需求,今天就發(fā)出來記錄下 首先是使用canvas繪制一張海報(bào),微信小程序的canvas有老版本和新版本我是用的是新版本 代碼如下 js部分 我的做法是給canvas隱藏了不看到 ,等canvas繪制完畢后導(dǎo)出的url直接賦給

    2023年04月08日
    瀏覽(33)
  • 微信小程序中使用畫布canvas實(shí)現(xiàn)動(dòng)態(tài)心電圖繪制

    微信小程序中使用畫布canvas實(shí)現(xiàn)動(dòng)態(tài)心電圖繪制

    大家好,我是雄雄。 近期,接了個(gè)項(xiàng)目,三端(小程序、PC、公眾號(hào))同步開發(fā),PC端沒的問題,以前一直做的就是PC端,但是小程序和公眾號(hào)之前沒有做過,只能通過這個(gè)項(xiàng)目,邊做邊學(xué)了。 人家都說小程序用原生的特別難,大部分都用 uniapp 開發(fā),說是這個(gè)方便快捷,還能

    2024年02月09日
    瀏覽(72)
  • 【小程序圖片水印】微信小程序圖片加水印功能 canvas繪圖

    【小程序圖片水印】微信小程序圖片加水印功能 canvas繪圖

    感覺有用的話,可以打賞一把么?一毛不嫌少,十塊不嫌多 更多詳細(xì)代碼請關(guān)注公眾號(hào)索取(備注:公眾號(hào)):

    2024年04月29日
    瀏覽(35)
  • 微信小程序canvas生成圖片并保存

    微信小程序canvas生成圖片并保存

    需求: 做一個(gè)類似下圖的功能。圖片內(nèi)容是動(dòng)態(tài)的,用canvas畫出來,生成臨時(shí)圖片,再保存。 實(shí)現(xiàn): ?其他使用,查看微信開發(fā)文檔 ?

    2024年02月13日
    瀏覽(23)
  • 在H5、微信小程序中使用canvas繪制二維碼、分享海報(bào)

    提示:繪制二維碼的插件有很多,有些僅支持H5,有些只適用微信小程序,故讀者在使用二維碼插件前需要先查看插件官方文檔,查看其支持的環(huán)境 H5中安裝qrious插件 引入qrious canvas模板 初始化canvas 二維碼繪制并渲染 微信小程序中安裝weapp-qrcode插件 引入weapp-qrcode canvas模板

    2024年02月14日
    瀏覽(87)
  • 微信小程序:使用canvas 生成圖片 并分享

    微信小程序:使用canvas 生成圖片 并分享

    廢話不多說直接上代碼?。。?! 最終效果圖 ?

    2024年02月11日
    瀏覽(92)
  • 微信小程序--canvas畫布實(shí)現(xiàn)圖片的編輯

    微信小程序--canvas畫布實(shí)現(xiàn)圖片的編輯

    上傳圖片,編輯圖片大小,添加文字,改變文字顏色等 微信小程序--canvas畫布實(shí)現(xiàn)圖片的編輯 軟件環(huán)境:微信開發(fā)者工具 官方下載地址:微信開發(fā)者工具下載地址與更新日志 | 微信開放文檔 1、基本需求。 實(shí)現(xiàn)上傳圖片 實(shí)現(xiàn)圖片編輯 實(shí)現(xiàn)添加文字 實(shí)現(xiàn)導(dǎo)出圖片 2、案例目錄

    2024年02月05日
    瀏覽(94)
  • 微信小程序-生成canvas圖片并保存到手機(jī)相冊

    wxml頁面 wxss頁面 js代碼

    2024年02月10日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包