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

微信小程序——二維碼推廣海報

這篇具有很好參考價值的文章主要介紹了微信小程序——二維碼推廣海報。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

微信小程序生成海報二維碼,微信小程序,微信小程序,小程序
??博主:小貓娃來啦
??本文核心:本地圖片和接口返回二維碼制作一體化canvas海報

創(chuàng)建一個畫布

在微信小程序中,我們使用<canvas>標(biāo)簽來創(chuàng)建一個畫布

wxml 文件:

<view class="container">
  <canvas canvas-id="myCanvas" class="canvas"></canvas>
</view>

確立基本樣式

wxss文件:

.container {
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.canvas {
  width: 300px;
  height: 300px;
}


通過canvas API繪制圖像

Page({
  onReady() {
    const ctx = wx.createCanvasContext('myCanvas');
    
    // 繪制背景圖片
    wx.getImageInfo({
      src: '../img/bg.png', // 本地背景圖片路徑
      success(res) {
        ctx.drawImage(res.path, 0, 0, 300, 300);
        
        // 繪制二維碼
        wx.request({
          url: '', // 替換成實(shí)際的二維碼接口地址
          success(res) {
            wx.getImageInfo({
              src: res.data.qrcodeUrl,
              success(res) {
                // 繪制二維碼到畫布上
                ctx.drawImage(res.path, 100, 100, 100, 100);
                
                // 繪制文字
                ctx.setFontSize(16);
                ctx.setFillStyle('#ffffff');
                ctx.fillText('我的推廣碼', 120, 250);
                
                // 繪制完成并保存畫布
                ctx.draw(false, () => {
                  wx.canvasToTempFilePath({
                    canvasId: 'myCanvas',
                    success(res) {
                      console.log('Canvas 生成臨時圖片路徑:', res.tempFilePath);
                    },
                    fail(err) {
                      console.error('Canvas 保存失敗:', err);
                    }
                  });
                });
              },
              fail(err) {
                console.error('獲取二維碼圖片失敗:', err);
              }
            });
          },
          fail(err) {
            console.error('請求二維碼接口失敗:', err);
          }
        });
      },
      fail(err) {
        console.error('獲取背景圖片信息失敗:', err);
      }
    });
  }
});

細(xì)節(jié)1

我們先使用wx.createCanvasContext創(chuàng)建一個<canvas>的上下文對象,然后通過調(diào)用drawImage方法分別繪制背景圖片和二維碼到畫布上。接著,我們使用fillText方法繪制一段文字,最后調(diào)用ctx.draw方法并設(shè)置reserve參數(shù)為false來完成畫布的繪制。

當(dāng)畫布繪制完成后,我們可以通過wx.canvasToTempFilePath方法將畫布保存為臨時圖片文件,并在成功回調(diào)中獲取到臨時圖片的路徑。你可以根據(jù)實(shí)際需求,將臨時圖片路徑傳遞給其他接口或展示在界面上。


長按保存

要實(shí)現(xiàn)長按保存功能,我們在 <canvas> 上監(jiān)聽 touch 事件,并在長按事件觸發(fā)時保存畫布圖像
首先在剛剛的<canvas>標(biāo)簽上,我們需要加個事件:

<view class="container">
  <canvas canvas-id="myCanvas" class="canvas" bindlongtap="saveImage"></canvas>
</view>

我們給 <canvas> 添加了 bindlongtap 事件綁定,并指定了對應(yīng)的回調(diào)函數(shù) saveImage。當(dāng)用戶長按 <canvas> 時,將會觸發(fā) saveImage 函數(shù)。

  saveImage() {
    wx.canvasToTempFilePath({
      canvasId: 'myCanvas',
      success(res) {
        const imageFilePath = res.tempFilePath;
        wx.saveImageToPhotosAlbum({
          filePath: imageFilePath,
          success() {
            wx.showToast({
              title: '保存成功',
              icon: 'success',
              duration: 2000
            });
          },
          fail(err) {
            console.error('保存圖片到相冊失敗:', err);
          }
        });
      },
      fail(err) {
        console.error('Canvas 保存失敗:', err);
      }
    });
  }

細(xì)節(jié)2

saveImage 函數(shù)中,我們使用 wx.canvasToTempFilePath 方法將畫布保存為臨時圖片文件。在成功回調(diào)中,我們可以獲取到臨時圖片的路徑 res.tempFilePath,然后通過 wx.saveImageToPhotosAlbum 方法將圖片保存到相冊中。保存成功后,我們提示“保存成功”。

需要注意,在使用 wx.saveImageToPhotosAlbum 保存圖片到相冊時,需要用戶進(jìn)行授權(quán)。這個時候我們可以在小程序設(shè)置中添加相冊權(quán)限,并根據(jù)實(shí)際需求處理授權(quán)相關(guān)邏輯。

我們也可以綁定bindlongpress事件,這就是最直接的長按事件

注意:長按事件默認(rèn)的觸發(fā)時間為 350ms,也可以通過 longpress-duration 屬性來調(diào)整長按的觸發(fā)時間,單位為毫秒。例如:

<canvas canvas-id="myCanvas" class="canvas"bindlongpress="downimg" longpress-duration="1000"></canvas>

那么如此一來就意味著長按畫布一秒,觸發(fā)函數(shù)downimg

最終實(shí)現(xiàn)效果:
微信小程序生成海報二維碼,微信小程序,微信小程序,小程序

當(dāng)然在制作這個功能過程中遇到很多問題,總結(jié)一下一般就以下幾個方面的問題:

跨域問題:如果你使用的二維碼接口返回的圖片是在不同的域名下,可能會存在跨域問題。你需要確保小程序的服務(wù)器配置允許跨域請求,或者使用合法的API 接口。

圖片加載:在繪制 Canvas 之前,你需要確保所有要使用的圖片都已經(jīng)加載完成。你可以使用 wx.getImageInfo方法獲取圖片信息,或者使用 wx.downloadFile 下載網(wǎng)絡(luò)圖片。確保在繪制 Canvas 之前所有圖片都已準(zhǔn)備就緒。

圖片路徑:當(dāng)繪制 Canvas時,你需要提供正確的圖片路徑。對于本地圖片,你可以使用相對路徑(相對于當(dāng)前小程序頁面)。對于接口返回的圖片,你需要獲取臨時文件路徑或下載到本地后再進(jìn)行繪制。

異步加載:從網(wǎng)絡(luò)加載圖片或獲取二維碼等操作是異步的,確保在圖片加載完成后再進(jìn)行繪制??梢詫D片加載操作放在回調(diào)函數(shù)或 Promise中,確保繪制操作在圖片準(zhǔn)備好后執(zhí)行。

畫布大小:根據(jù)設(shè)計需求,確保 Canvas 的大小與海報設(shè)計一致。你可以使用 <canvas> 標(biāo)簽的 width 和 height屬性設(shè)置畫布大小,并在繪制時按比例計算坐標(biāo)。

坐標(biāo)計算:根據(jù)海報的設(shè)計,確保各個元素的坐標(biāo)正確。使用 ctx.drawImage 方法繪制圖片時,可以設(shè)置目標(biāo)位置和尺寸。使用ctx.fillText 方法繪制文字時,可以設(shè)置文本內(nèi)容、字體大小、對齊方式等。

異常處理:在獲取圖片信息、請求接口或保存圖片到相冊時,都有可能出現(xiàn)異常。請確保適當(dāng)處理這些異常,并給予用戶合適的提示。

用戶授權(quán):保存圖片到相冊需要用戶的授權(quán)。你需要在小程序設(shè)置中添加相冊權(quán)限,并根據(jù)實(shí)際需求處理授權(quán)相關(guān)邏輯。

微信小程序生成海報二維碼,微信小程序,微信小程序,小程序文章來源地址http://www.zghlxwxcb.cn/news/detail-567839.html


到了這里,關(guān)于微信小程序——二維碼推廣海報的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • uniapp開發(fā)微信小程序生成二維碼海報

    uniapp開發(fā)微信小程序生成二維碼海報

    模板:

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

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

    2024年02月14日
    瀏覽(87)
  • 生成微信小程序發(fā)布上線后的二維碼 、獲取微信小程序二維碼、微信小程序二維碼如何生成?

    生成微信小程序發(fā)布上線后的二維碼 、獲取微信小程序二維碼、微信小程序二維碼如何生成?

    情景: 1、在微信小程序?qū)徍送瓿桑l(fā)布到線上后,想通過掃描小程序二維碼進(jìn)入小程序 2、可分享二維碼出去,通過二維碼掃碼進(jìn)入小程序 方法: 1、進(jìn)入微信小程序的后臺配置。鏈接:微信公眾平臺。(如圖一) 2、進(jìn)入 “設(shè)置”?-- “?基本設(shè)置” -- “小程序碼及線下物

    2024年02月12日
    瀏覽(102)
  • 微信小程序怎樣生成體驗(yàn)版二維碼?微信小程序怎么轉(zhuǎn)化為二維碼?

    微信小程序怎樣生成體驗(yàn)版二維碼?微信小程序怎么轉(zhuǎn)化為二維碼?

    方法:在微信開發(fā)者工具界面,右上角,點(diǎn)擊上傳,如果提示成功,說明已經(jīng)上傳成功。 ? ? 網(wǎng)址: 微信公眾平臺 微信公眾平臺,給個人、企業(yè)和組織提供業(yè)務(wù)服務(wù)與用戶管理能力的全新服務(wù)平臺。 https://mp.weixin.qq.com/ 在微信公眾號平臺登錄,選擇需要生成二維碼的小程序

    2024年02月10日
    瀏覽(106)
  • 如何生成微信小程序二維碼,小程序內(nèi)頁二維碼

    如何生成微信小程序二維碼,小程序內(nèi)頁二維碼

    你自己得有個微信公眾號,只需要知道小程序的名字就可以了 生成小程序二維碼 第一步編輯素材 第二步搜索小程序名字,然后回車,下一步 第三步選小程序碼 小程序內(nèi)頁二維碼 第一步編輯素材 第二步搜索小程序名字,然后回車,下一步 第三步點(diǎn)擊‘獲取更多路徑’ 第四

    2024年02月15日
    瀏覽(31)
  • 微信小程序之生成二維碼

    微信小程序之生成二維碼

    ?var context = wx.createCanvasContext(\\\'mycanvas\\\');?// 獲取畫布 CanvasContext.fillText string text 在畫布上輸出的文本 number x 繪制文本的左上角 x 坐標(biāo)位置 number y 繪制文本的左上角 y 坐標(biāo)位置 number maxWidth 需要繪制的最大寬度,可選 CanvasContext.drawImage string imageResource 所要繪制的圖片資源(網(wǎng)絡(luò)

    2024年02月10日
    瀏覽(28)
  • 微信小程序 — 生成二維碼功能

    微信小程序 — 生成二維碼功能

    微信小程序?qū)崿F(xiàn)生成二維碼功能。需要用到canvas組件,設(shè)置 type為2d.? 需要使用js包 weapp-qrcode-canvas-2d https://github.com/DoctorWei/weapp-qrcode-canvas-2d weapp-qrcode-canvas-2d 是使用新版canvas-2d接口在微信小程序中生成二維碼(外部二維碼)的js包。canvas 2d 接口支持同層渲染且性能更佳,可大

    2024年02月09日
    瀏覽(24)
  • 微信小程序生成二維碼的 方式

    一:生成普通的二維碼 https://open.weixin.qq.com/sns/getexpappinfo?appid=xxxpath=xxx?a=123 appid:小程序的appid path: 小程序的路徑 a:小程序需要攜帶的參數(shù),不傳可以不寫 二:在微信開發(fā)文檔內(nèi)生成 步驟1.登錄微信公眾平臺 2.找到工具菜單 3.選擇生成小程序碼 具體里面的有生成規(guī)則,不懂得

    2024年02月12日
    瀏覽(24)
  • 微信小程序?qū)崿F(xiàn)預(yù)約生成二維碼

    微信小程序?qū)崿F(xiàn)預(yù)約生成二維碼

    業(yè)務(wù)需求 :點(diǎn)擊預(yù)約按鈕即可生成二維碼憑碼入校參觀~ 如下是博主自己寫的wxml: 以及wxss: 去Gitee下載工具包: 二維碼工具包 http://? https://gitee.com/WeiDoctor/weapp-qrcode-canvas-2d ? 下載zip: ? ? 將dist文件夾中的js文件全部復(fù)制到utils目錄下: 如下代碼必須完整的導(dǎo)入再頁面

    2024年04月15日
    瀏覽(34)
  • 微信小程序使用--如何生成二維碼

    微信小程序使用--如何生成二維碼

    一、生成二維碼 1.獲取token 參照官方文檔說明: https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html 其中g(shù)rant_type是寫死的,appid和secret是注冊小程序的時候獲取的,然后會得到一個默認(rèn)兩小時失效的token 2.獲取二維碼 參照官方文檔說明: https://developers.

    2024年02月04日
    瀏覽(23)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包