Table des matières
Code Cloud
Maison Applet WeChat Développement de mini-programmes Comment utiliser le canevas du mini programme pour dessiner des codes QR ?

Comment utiliser le canevas du mini programme pour dessiner des codes QR ?

Jan 06, 2022 am 10:11 AM
canvas 二维码 微信小程序

Comment générer un code QR dans l'applet WeChat ? L'article suivant vous présentera comment dessiner des codes QR en utilisant la capacité de canevas du mini programme. J'espère qu'il vous sera utile !

Comment utiliser le canevas du mini programme pour dessiner des codes QR ?

Dans le secteur des mini-programmes WeChat, il y aura certains scénarios dans lesquels les codes QR devront être affichés. Les codes QR statiques peuvent être stockés directement localement et affichés à l'aide d'images, mais ils ne conviennent pas pour générer des codes QR dynamiques basés sur des informations relatives à l'utilisateur. Cet article explique comment dessiner des codes QR en utilisant la capacité de canevas du mini-programme.

1 Méthode 1 : Générez directement la wx-qr

1.1 DEMO via

Ouvrez les outils de développement WeChat pour afficher

Comment utiliser le canevas du mini programme pour dessiner des codes QR ?
y compris l'image d'arrière-plan
Comment utiliser le canevas du mini programme pour dessiner des codes QR ?
Avec logo
Comment utiliser le canevas du mini programme pour dessiner des codes QR ?
Avec logo + image de fond

1.2 Installez

# 通过 npm 安装
npm i wx-qr -S

# 通过 yarn 安装
yarn add wx-qr
Copier après la connexion

1.3 Utilisez le composant

Tout d'abord, allez dans le répertoire racine de l'applet que vous avez développé app.json ou xxx là où vous en avez besoin pour utiliser le composant. Composants référencés dans json app.json 或需要使用该组件的 xxx.json 中引用组件

(注意:请不要将组件命名为 wx-xxx 开头,可能会导致微信小程序解析 tag 失败 )

{
  "usingComponents": {
    "qr-container": "wx-qr"
  }
}
Copier après la connexion

之后就可以在 wxml

(Remarque : veuillez ne pas nommer les composants commençant par wx-xxx, ce qui pourrait empêcher l'applet WeChat d'analyser les balises)

<qr-container text="{{qrTxt}}" size="750"></qr-container>
Copier après la connexion
Ensuite, vous pouvez utiliser wxml
Page({
    data: {
        qrTxt: &#39;https://github.com/liuxdi/wx-qr&#39;,
    },
});
Copier après la connexion
<canvas id="qr" type="2d" style="height: 750rpx;width: 750rpx;"></canvas>
Copier après la connexion
Bien sûr, il peut également prendre en charge de nombreuses configurations. Pour plus de détails, consultez la documentation github

ou

Code Cloud

.

2. Méthode 2 : basée sur QRCode.js combiné avec un dessin sur toile

2.0 Composants du code QR

Comment utiliser le canevas du mini programme pour dessiner des codes QR ?

  • Modèle de positionnement

  • Le modèle de détection de position est un modèle de positionnement, utilisé pour marquer le second La taille rectangulaire du code QR. Ces trois modèles de positionnement ont des bords blancs et sont appelés séparateurs pour modèles de détection de position. La raison pour laquelle il y en a trois au lieu de quatre signifie que trois peuvent marquer un rectangle.

  • Les modèles de timing sont également utilisés pour le positionnement. La raison en est qu'il existe 40 tailles de codes QR. Si la taille est trop grande, il doit y avoir une ligne standard, sinon elle risque d'être scannée de travers.

Modèles d'alignement Seuls les codes QR de la version 2 et supérieure (y compris la version 2) nécessitent ce élément, qui est également utilisé pour le positionnement.
  • Données fonctionnelles

  • Les informations de format existent dans toutes les tailles et sont utilisées pour stocker certaines données formatées.

Informations sur la version >= Version 7 ou supérieure, vous devez réserver deux zones 3 x 6 pour stocker certaines informations de version.
  • Code de données et code de correction d'erreur
À l'exception des emplacements ci-dessus, les emplacements restants stockent le code de données du code de données et le code de correction d'erreur du code de correction d'erreur.

2.1 Présentation de la bibliothèque de génération de données de code QR

Copiez

qrcode.js dans le répertoire correspondant de votre mini programme.

2.2 Créez une balise de canevas dans le mini programme et définissez la longueur et la largeur du canevas

const query = this.createSelectorQuery();
let dpr = wx.getSystemInfoSync().pixelRatio;
query.select(&#39;#qr&#39;).fields({ node: true, size: true, id: true })
  .exec((res) => {
    let { node: canvas, height, width } = res[0];
    let ctx = canvas.getContext(&#39;2d&#39;);
    canvas.width = width * dpr
    canvas.height = height * dpr
    ctx.scale(dpr, dpr);
  })
Copier après la connexion

2.3 Obtenez l'instance et le contexte du canevas

// 二维码的颜色
const colorDark = &#39;#000&#39;;
// 获取二维码的大小,因css设置的为750rpx,将其转为px
const rawViewportSize = getPxFromRpx(750);
// 二维码容错率{ L: 1, M: 0, Q: 3, H: 2 }
const correctLevel = 0;
// 创建二维码实例对象,并添加数据进行生成
const qrCode = new QRCodeModel(-1, correctLevel);
qrCode.addData(url);
qrCode.make();

// 每个方向的二维码数量
const nCount = qrCode.moduleCount;
// 计算每个二维码方块的大小
const nSize = getRoundNum(rawViewportSize / nCount, 3)
// 每块二维码点的大小比例
const dataScale = 1;
// 计算出dataScale不为1时,每个点的偏移值
const dataXyOffset = (1 - dataScale) * 0.5;
// 循环行列绘制数据码区
for (let row = 0; row < nCount; row++) {
  for (let col = 0; col < nCount; col++) {
    // row 和 col 处的模块是否是黑色区
    const bIsDark = qrCode.isDark(row, col);
    // 是否是二维码的图案定位标识区 Position Detection Pattern(如本模块,是三个顶点位置处的大方块)
    const isBlkPosCtr = (col < 8 && (row < 8 || row >= nCount - 8)) || (col >= nCount - 8 && row < 8);
    // 是否是Timing Patterns,也是用于协助定位扫描的
    const isTiming = (row == 6 && col >= 8 && col <= nCount - 8) || (col == 6 && row >= 8 && row <= nCount - 8);
    // 如果是这些区域 则不进行绘制
    let isProtected = isBlkPosCtr || isTiming;
    // 计算每个点的绘制位置(left,top)
    const nLeft = col * nSize + (isProtected ? 0 : dataXyOffset * nSize);
    const nTop = row * nSize + (isProtected ? 0 : dataXyOffset * nSize);
    // 描边色、线宽、填充色配置
    ctx.strokeStyle = colorDark;
    ctx.lineWidth = 0.5;
    ctx.fillStyle = bIsDark ? colorDark : "rgba(255, 255, 255, 0.6)";
    // 如果不是标识区,则进行绘制
    if (!isProtected) {
      ctx.fillRect(
        nLeft,
        nTop,
        (isProtected ? (isBlkPosCtr ? 1 : 1) : dataScale) * nSize,
        (isProtected ? (isBlkPosCtr ? 1 : 1) : dataScale) * nSize
      );
    }
  }
}
Copier après la connexion

2.4 Définissez quelques variables et dessinez le code de données de la zone du code QR

parmi lequel

QRCodeModel

est importé de qrCode.js

// 绘制Position Detection Pattern
ctx.fillStyle = colorDark;
ctx.fillRect(0, 0, 7 * nSize, nSize);
ctx.fillRect((nCount - 7) * nSize, 0, 7 * nSize, nSize);
ctx.fillRect(0, 6 * nSize, 7 * nSize, nSize);
ctx.fillRect((nCount - 7) * nSize, 6 * nSize, 7 * nSize, nSize);
ctx.fillRect(0, (nCount - 7) * nSize, 7 * nSize, nSize);
ctx.fillRect(0, (nCount - 7 + 6) * nSize, 7 * nSize, nSize);
ctx.fillRect(0, 0, nSize, 7 * nSize);
ctx.fillRect(6 * nSize, 0, nSize, 7 * nSize);
ctx.fillRect((nCount - 7) * nSize, 0, nSize, 7 * nSize);
ctx.fillRect((nCount - 7 + 6) * nSize, 0, nSize, 7 * nSize);
ctx.fillRect(0, (nCount - 7) * nSize, nSize, 7 * nSize);
ctx.fillRect(6 * nSize, (nCount - 7) * nSize, nSize, 7 * nSize);
ctx.fillRect(2 * nSize, 2 * nSize, 3 * nSize, 3 * nSize);
ctx.fillRect((nCount - 7 + 2) * nSize, 2 * nSize, 3 * nSize, 3 * nSize);
ctx.fillRect(2 * nSize, (nCount - 7 + 2) * nSize, 3 * nSize, 3 * nSize);
// 绘制Position Detection Pattern 完毕

// 绘制Timing Patterns
const timingScale = 1;
const timingXyOffset = (1 - timingScale) * 0.5;
for (let i = 0; i < nCount - 8; i += 2) {
  _drawDot(ctx, 8 + i, 6, nSize, timingXyOffset, timingScale);
  _drawDot(ctx, 6, 8 + i, nSize, timingXyOffset, timingScale);
}
// 绘制Timing Patterns 完毕
Copier après la connexion
Comment utiliser le canevas du mini programme pour dessiner des codes QR ?A ce moment, la zone de code de données du code QR a été dessinée :

2.5 Dessinez la zone de reconnaissance graphique

rrreeeComment utiliser le canevas du mini programme pour dessiner des codes QR ? À ce stade, un simple code QR a été dessiné avec succès ~

Pour plus de détails sur le code, veuillez consulter l'extrait de code de l'applet WeChat

https://developers. weixin.qq.com/s/WHJj73mX7bwv

This Le code fournit simplement une simple logique de génération de code QR. Si vous avez besoin d'une fonction d'affichage de code QR plus complexe, il est recommandé d'utiliser

wx-qr ou de vous référer au code spécifique à l'intérieur. Bienvenue pour soulever des problèmes et des étoiles ~~

[Recommandations d'apprentissage associées : 🎜Tutoriel de développement de mini-programmes🎜]🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le mini-programme Xianyu WeChat est officiellement lancé Le mini-programme Xianyu WeChat est officiellement lancé Feb 10, 2024 pm 10:39 PM

Le mini programme WeChat officiel de Xianyu a été lancé discrètement. Dans le mini programme, vous pouvez publier des messages privés pour communiquer avec les acheteurs/vendeurs, afficher les informations personnelles et les commandes, rechercher des articles, etc. Si vous êtes curieux, qu'est-ce que le mini Xianyu WeChat. programme appelé ? Jetons un coup d'oeil. Quel est le nom de l'applet Xianyu WeChat ? Réponse : Xianyu, transactions inutilisées, ventes d'occasion, valorisations et recyclage. 1. Dans le mini programme, vous pouvez publier des messages inactifs, communiquer avec des acheteurs/vendeurs via des messages privés, afficher des informations personnelles et des commandes, rechercher des articles spécifiés, etc. 2. Sur la page du mini programme, il y a une page d'accueil, à proximité, publier des messages inactifs et les miens 5 fonctions ; 3. Si vous souhaitez l'utiliser, vous devez activer le paiement WeChat avant d'acheter ;

Comment créer un code QR avec wps Comment créer un code QR avec wps Mar 28, 2024 am 09:41 AM

1. Ouvrez le logiciel et entrez dans l'interface d'opération de texte wps. 2. Recherchez l'option d'insertion dans cette interface. 3. Cliquez sur l'option Insérer et recherchez l'option Code QR dans sa zone d'outils d'édition. 4. Cliquez sur l'option Code QR pour faire apparaître la boîte de dialogue Code QR. 5. Sélectionnez l'option de texte à gauche et entrez nos informations dans la zone de texte. 6. Sur le côté droit, vous pouvez définir la forme du code QR et la couleur du code QR.

Implémentez l'effet de menu déroulant dans l'applet WeChat Implémentez l'effet de menu déroulant dans l'applet WeChat Nov 21, 2023 pm 03:03 PM

Pour implémenter l'effet de menu déroulant dans les mini-programmes WeChat, des exemples de code spécifiques sont nécessaires. Avec la popularité de l'Internet mobile, les mini-programmes WeChat sont devenus une partie importante du développement d'Internet, et de plus en plus de gens ont commencé à y prêter attention et à y prêter attention. utilisez les mini-programmes WeChat. Le développement de mini-programmes WeChat est plus simple et plus rapide que le développement d'applications traditionnelles, mais il nécessite également la maîtrise de certaines compétences en développement. Dans le développement des mini-programmes WeChat, les menus déroulants sont un composant courant de l'interface utilisateur, permettant une meilleure expérience utilisateur. Cet article présentera en détail comment implémenter l'effet de menu déroulant dans l'applet WeChat et fournira des informations pratiques.

Implémenter des effets de filtre d'image dans les mini-programmes WeChat Implémenter des effets de filtre d'image dans les mini-programmes WeChat Nov 21, 2023 pm 06:22 PM

Implémentation d'effets de filtre d'image dans les mini-programmes WeChat Avec la popularité des applications de médias sociaux, les gens aiment de plus en plus appliquer des effets de filtre aux photos pour améliorer l'effet artistique et l'attractivité des photos. Les effets de filtre d'image peuvent également être implémentés dans les mini-programmes WeChat, offrant aux utilisateurs des fonctions de retouche photo plus intéressantes et créatives. Cet article expliquera comment implémenter des effets de filtre d'image dans les mini-programmes WeChat et fournira des exemples de code spécifiques. Tout d’abord, nous devons utiliser le composant canevas dans l’applet WeChat pour charger et modifier des images. Le composant canevas peut être utilisé sur la page

Utilisez l'applet WeChat pour obtenir un effet de changement de carrousel Utilisez l'applet WeChat pour obtenir un effet de changement de carrousel Nov 21, 2023 pm 05:59 PM

Utilisez l'applet WeChat pour obtenir un effet de commutation de carrousel. L'applet WeChat est une application légère avec des caractéristiques de développement et d'utilisation simples et efficaces. Dans les mini-programmes WeChat, il est courant d'obtenir des effets de commutation de carrousel. Cet article explique comment utiliser l'applet WeChat pour obtenir l'effet de changement de carrousel et donne des exemples de code spécifiques. Tout d’abord, ajoutez un composant carrousel au fichier d’échange de l’applet WeChat. Par exemple, vous pouvez utiliser la balise &lt;swiper&gt; pour obtenir l'effet de commutation du carrousel. Dans ce composant, vous pouvez passer b

Quel est le nom de l'applet Xianyu WeChat ? Quel est le nom de l'applet Xianyu WeChat ? Feb 27, 2024 pm 01:11 PM

Le mini-programme officiel WeChat de Xianyu a été lancé discrètement. Il offre aux utilisateurs une plate-forme pratique qui vous permet de publier et d'échanger facilement des objets inutilisés. Dans le mini programme, vous pouvez communiquer avec des acheteurs ou des vendeurs via des messages privés, afficher des informations personnelles et des commandes et rechercher les articles que vous souhaitez. Alors, comment s'appelle exactement Xianyu dans le mini-programme WeChat ? Ce guide didacticiel vous le présentera en détail. Les utilisateurs qui souhaitent savoir, veuillez suivre cet article et continuer à lire ! Quel est le nom de l'applet Xianyu WeChat ? Réponse : Xianyu, transactions inutilisées, ventes d'occasion, valorisations et recyclage. 1. Dans le mini programme, vous pouvez publier des messages inactifs, communiquer avec des acheteurs/vendeurs via des messages privés, afficher des informations personnelles et des commandes, rechercher des articles spécifiés, etc. 2. Sur la page du mini programme, il y a une page d'accueil, à proximité, publier des messages inactifs et les miens 5 fonctions ;

Que dois-je faire si le code QR sur Enterprise WeChat ne peut pas être chargé ? Que dois-je faire si le code QR sur Enterprise WeChat ne peut pas être chargé ? Mar 14, 2024 pm 10:46 PM

Que dois-je faire si le code QR sur Enterprise WeChat ne peut pas être chargé ? Que devons-nous faire lorsque nous constatons que le code QR ne peut pas être chargé et ne peut pas être affiché lors de la connexion à la version informatique d'Enterprise WeChat. Ici, l'éditeur vous donnera une introduction détaillée à la solution au problème que représente le code QR d'Enterprise ? WeChat ne peut pas être chargé. Tous ceux qui en ont besoin Amis, venez jeter un oeil ! Méthode 1. Raisons du réseau 1. La vitesse du réseau peut être lente, entraînant un chargement lent et un échec d'affichage. Vous pouvez vous déconnecter et vous reconnecter. 2. Vérifiez les problèmes de réseau de l'ordinateur pour voir s'il est connecté au réseau. Vous pouvez redémarrer le périphérique réseau. Méthode 2 : Maintenance et mise à jour : Le code QR peut ne pas être généré car la version d'Enterprise WeChat est trop basse. Vous pouvez mettre à niveau le logiciel vers la dernière version. Troisième méthode, pare-feu 1

Implémentez la fonction de suppression coulissante dans le mini-programme WeChat Implémentez la fonction de suppression coulissante dans le mini-programme WeChat Nov 21, 2023 pm 06:22 PM

La mise en œuvre de la fonction de suppression coulissante dans les mini-programmes WeChat nécessite des exemples de code spécifiques. Avec la popularité des mini-programmes WeChat, les développeurs rencontrent souvent des problèmes de mise en œuvre de certaines fonctions courantes au cours du processus de développement. Parmi eux, la fonction de suppression coulissante est une exigence fonctionnelle courante et couramment utilisée. Cet article présentera en détail comment implémenter la fonction de suppression coulissante dans l'applet WeChat et donnera des exemples de code spécifiques. 1. Analyse des besoins Dans le mini programme WeChat, la mise en œuvre de la fonction de suppression coulissante implique les points suivants : Affichage de la liste : pour afficher une liste qui peut être glissée et supprimée, chaque élément de la liste doit inclure

See all articles