목차
Code Cloud
위챗 애플릿 미니 프로그램 개발 미니 프로그램의 캔버스를 사용하여 QR 코드를 그리는 방법은 무엇입니까?

미니 프로그램의 캔버스를 사용하여 QR 코드를 그리는 방법은 무엇입니까?

Jan 06, 2022 am 10:11 AM
canvas QR 코드 위챗 애플릿

WeChat 애플릿에서 QR 코드를 생성하는 방법은 무엇입니까? 다음 글에서는 미니 프로그램의 캔버스 기능을 활용하여 QR 코드를 그리는 방법을 소개하겠습니다.

미니 프로그램의 캔버스를 사용하여 QR 코드를 그리는 방법은 무엇입니까?

WeChat 미니 프로그램 사업에서 QR 코드를 표시해야 하는 몇 가지 시나리오가 있습니다. 정적 QR코드는 로컬에 직접 저장하고 사진을 이용해 표시할 수 있지만, 사용자 관련 정보를 기반으로 동적 QR코드를 생성하는 데에는 적합하지 않습니다. 이 기사에서는 미니 프로그램의 캔버스 기능을 사용하여 QR 코드를 그리는 방법을 소개합니다.

1 방법 1: wx-qr

WeChat 개발자 도구를 열어

1.1 DEMO를 직접 생성하여

미니 프로그램의 캔버스를 사용하여 QR 코드를 그리는 방법은 무엇입니까?
배경 이미지 포함
을 확인하세요. 미니 프로그램의 캔버스를 사용하여 QR 코드를 그리는 방법은 무엇입니까?
로고 포함
미니 프로그램의 캔버스를 사용하여 QR 코드를 그리는 방법은 무엇입니까?
로고+배경 이미지 포함

1.2 설치

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

# 通过 yarn 安装
yarn add wx-qr
로그인 후 복사

1.3

컴포넌트 사용 먼저 개발한 애플릿의 루트 디렉터리인 app.json 또는 필요한 xxx로 이동합니다. json에서 참조되는 구성 요소를 사용합니다. app.json 或需要使用该组件的 xxx.json 中引用组件

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

{
  "usingComponents": {
    "qr-container": "wx-qr"
  }
}
로그인 후 복사

之后就可以在 wxml

(참고: wx-xxx로 시작하는 구성 요소 이름을 지정하지 마십시오. 그러면 WeChat 애플릿이 태그를 구문 분석하지 못할 수 있습니다.)

<qr-container text="{{qrTxt}}" size="750"></qr-container>
로그인 후 복사
그런 다음 wxml
Page({
    data: {
        qrTxt: &#39;https://github.com/liuxdi/wx-qr&#39;,
    },
});
로그인 후 복사
<canvas id="qr" type="2d" style="height: 750rpx;width: 750rpx;"></canvas>
로그인 후 복사
물론 다양한 구성도 지원할 수 있습니다. 자세한 내용은 github

또는

Code Cloud

문서를 참조하세요.

2. 방법 2: 캔버스 드로잉과 결합된 QRCode.js 기반

2.0 QR 코드의 일부

미니 프로그램의 캔버스를 사용하여 QR 코드를 그리는 방법은 무엇입니까?

  • Positioning 패턴

  • Position 감지 패턴은 다음과 같은 위치 지정 패턴입니다. 두 번째 QR 코드의 직사각형 크기를 표시하십시오. 이 세 가지 위치 지정 패턴은 흰색 가장자리를 가지며 위치 감지 패턴용 구분 기호라고 합니다. 4개가 아닌 3개가 있는 이유는 3개가 직사각형을 표시할 수 있다는 의미입니다.

  • 타이밍 패턴은 위치 지정에도 사용됩니다. 그 이유는 QR코드의 크기가 40개이기 때문입니다. 크기가 너무 크면 표준선이 있어야 하고, 그렇지 않으면 비뚤어지게 스캔될 수 있습니다.

정렬 패턴 버전 2 이상(버전 2 포함)의 QR 코드에만 이 항목이 필요하며 위치 지정에도 사용됩니다.
  • 기능적 데이터

  • 형식 정보는 모든 크기로 존재하며 일부 형식화된 데이터를 저장하는 데 사용됩니다.

버전 정보 >= 버전 7 이상인 경우 일부 버전 정보를 저장하려면 3 x 6 영역 2개를 예약해야 합니다.
  • 데이터 코드 및 오류 수정 코드
위 이외의 나머지 위치에는 데이터 코드 데이터 코드와 오류 수정 코드 오류 수정 코드가 저장됩니다.

2.1 QR 코드 데이터 생성 라이브러리 소개

qrcode.js를 미니 프로그램의 해당 디렉토리에 복사하세요.

2.2 미니 프로그램에서 캔버스 태그를 생성하고 캔버스의 길이와 너비를 설정합니다.

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);
  })
로그인 후 복사

2.3 캔버스 인스턴스 및 컨텍스트 가져오기

// 二维码的颜色
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
      );
    }
  }
}
로그인 후 복사

2.4 일부 변수를 정의하고 그림을 그립니다. QR 코드 영역

의 데이터 코드 중

QRCodeModel

은 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 完毕
로그인 후 복사
미니 프로그램의 캔버스를 사용하여 QR 코드를 그리는 방법은 무엇입니까?이 때 QR 코드의 데이터 코드 영역이 그려집니다.

2.5 그래픽 인식 영역 그리기

rrreee미니 프로그램의 캔버스를 사용하여 QR 코드를 그리는 방법은 무엇입니까? 이때 간단한 QR코드가 성공적으로 그려졌습니다~

코드에 대한 자세한 내용은 WeChat 애플릿 코드 스니펫

https://developers을 참조하세요. weixin.qq.com/s/WHJj73mX7bwv

이 코드는 간단한 QR 코드 생성 로직을 제공합니다. 좀 더 복잡한 QR 코드 표시 기능이 필요한 경우

wx-qr을 사용하거나 내부의 특정 코드를 참조하는 것이 좋습니다. 이슈와 스타 제기에 오신 것을 환영합니다~~

[관련 학습 추천: 🎜미니 프로그램 개발 튜토리얼🎜]🎜

위 내용은 미니 프로그램의 캔버스를 사용하여 QR 코드를 그리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Xianyu WeChat 미니 프로그램 공식 출시 Xianyu WeChat 미니 프로그램 공식 출시 Feb 10, 2024 pm 10:39 PM

Xianyu의 공식 WeChat 미니 프로그램이 조용히 출시되었습니다. 미니 프로그램에서는 비공개 메시지를 게시하여 구매자/판매자와 소통하고, 개인 정보 및 주문 보기, 상품 검색 등을 할 수 있습니다. 궁금하시다면 Xianyu WeChat mini가 무엇인가요? 프로그램을 살펴볼까요? Xianyu WeChat 애플릿의 이름은 무엇입니까? 답변: Xianyu, 유휴 거래, 중고 판매, ​​평가 및 재활용. 1. 미니 프로그램에서는 대기 메시지 게시, 비공개 메시지를 통한 구매자/판매자와의 커뮤니케이션, 개인 정보 및 주문 보기, 특정 항목 검색 등을 할 수 있습니다. 2. 미니 프로그램 페이지에는 근처에 홈페이지가 있습니다. 유휴 게시, 메시지, 내 5가지 기능 3. 사용하려면 구매하기 전에 WeChat 결제를 활성화해야 합니다.

wps를 사용하여 QR 코드를 만드는 방법 wps를 사용하여 QR 코드를 만드는 방법 Mar 28, 2024 am 09:41 AM

1. 소프트웨어를 열고 wps 텍스트 작업 인터페이스로 들어갑니다. 2. 이 인터페이스에서 삽입 옵션을 찾으세요. 3. 삽입 옵션을 클릭하고 편집 도구 영역에서 QR 코드 옵션을 찾으세요. 4. QR 코드 옵션을 클릭하면 QR 코드 대화 상자가 나타납니다. 5. 왼쪽의 텍스트 옵션을 선택하고 텍스트 상자에 정보를 입력하세요. 6. 오른쪽에서는 QR코드의 모양과 색상을 설정할 수 있습니다.

WeChat 애플릿에서 드롭다운 메뉴 효과 구현 WeChat 애플릿에서 드롭다운 메뉴 효과 구현 Nov 21, 2023 pm 03:03 PM

WeChat 미니 프로그램에서 드롭다운 메뉴 효과를 구현하려면 구체적인 코드 예제가 필요합니다. 모바일 인터넷의 인기로 인해 WeChat 미니 프로그램은 인터넷 개발의 중요한 부분이 되었으며 점점 더 많은 사람들이 관심을 갖고 주목하기 시작했습니다. WeChat 미니 프로그램을 사용하세요. WeChat 미니 프로그램 개발은 기존 APP 개발보다 간단하고 빠르지만 특정 개발 기술을 숙달해야 합니다. WeChat 미니 프로그램 개발에서 드롭다운 메뉴는 일반적인 UI 구성 요소로, 더 나은 사용자 경험을 제공합니다. 이 기사에서는 WeChat 애플릿에서 드롭다운 메뉴 효과를 구현하는 방법을 자세히 소개하고 실용적인 정보를 제공합니다.

WeChat 미니 프로그램에 이미지 필터 효과 구현 WeChat 미니 프로그램에 이미지 필터 효과 구현 Nov 21, 2023 pm 06:22 PM

WeChat 미니 프로그램에서 사진 필터 효과 구현 소셜 미디어 애플리케이션의 인기로 인해 사람들은 사진의 예술적 효과와 매력을 높이기 위해 사진에 필터 효과를 적용하는 것을 점점 더 좋아하고 있습니다. WeChat 미니 프로그램에서도 사진 필터 효과를 구현할 수 있어 사용자에게 더욱 흥미롭고 창의적인 사진 편집 기능을 제공합니다. 이 기사에서는 WeChat 미니 프로그램에서 이미지 필터 효과를 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 WeChat 애플릿의 캔버스 구성 요소를 사용하여 이미지를 로드하고 편집해야 합니다. 페이지에서 캔버스 구성요소를 사용할 수 있습니다.

WeChat 애플릿을 사용하여 캐러셀 전환 효과 달성 WeChat 애플릿을 사용하여 캐러셀 전환 효과 달성 Nov 21, 2023 pm 05:59 PM

WeChat 애플릿을 사용하여 캐러셀 전환 효과를 얻으세요. WeChat 애플릿은 개발 및 사용이 간단하고 효율적인 경량 애플리케이션입니다. WeChat 미니 프로그램에서는 캐러셀 전환 효과를 달성하는 것이 일반적인 요구 사항입니다. 이 기사에서는 WeChat 애플릿을 사용하여 캐러셀 전환 효과를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 WeChat 애플릿의 페이지 파일에 캐러셀 구성 요소를 추가합니다. 예를 들어 &lt;swiper&gt; 태그를 사용하여 캐러셀의 전환 효과를 얻을 수 있습니다. 이 구성 요소에서는 b를 전달할 수 있습니다.

Xianyu WeChat 애플릿의 이름은 무엇입니까? Xianyu WeChat 애플릿의 이름은 무엇입니까? Feb 27, 2024 pm 01:11 PM

Xianyu의 공식 WeChat 미니 프로그램이 사용자에게 유휴 항목을 쉽게 게시하고 거래할 수 있는 편리한 플랫폼을 제공하기 위해 조용히 출시되었습니다. 미니 프로그램에서는 비공개 메시지를 통해 구매자 또는 판매자와 소통할 수 있으며, 개인정보 및 주문 조회, 원하는 상품을 검색할 수 있습니다. 그렇다면 WeChat 미니 프로그램에서 Xianyu는 정확히 무엇이라고 불리나요? 이 튜토리얼 가이드에서는 이에 대해 자세히 소개합니다. 알고 싶은 사용자는 이 기사를 따라 계속 읽어보세요! Xianyu WeChat 애플릿의 이름은 무엇입니까? 답변: Xianyu, 유휴 거래, 중고 판매, ​​평가 및 재활용. 1. 미니 프로그램에서는 대기 메시지 게시, 비공개 메시지를 통한 구매자/판매자와의 커뮤니케이션, 개인 정보 및 주문 보기, 특정 항목 검색 등을 할 수 있습니다. 2. 미니 프로그램 페이지에는 근처에 홈페이지가 있습니다. 유휴 게시, 메시지 및 5가지 기능.

Enterprise WeChat의 QR 코드를 로드할 수 없으면 어떻게 해야 합니까? Enterprise WeChat의 QR 코드를 로드할 수 없으면 어떻게 해야 합니까? Mar 14, 2024 pm 10:46 PM

Enterprise WeChat의 QR 코드를 로드할 수 없으면 어떻게 해야 합니까? Enterprise WeChat의 컴퓨터 버전에 로그인할 때 QR 코드를 로드할 수 없고 표시할 수 없는 경우 어떻게 해야 합니까? 여기서 편집자는 Enterprise의 QR 코드가 발생하는 문제에 대한 해결 방법을 자세히 설명합니다. WeChat을 로드할 수 없습니다. 필요한 사람은 누구나 와서 살펴보세요! 방법 1. 네트워크 이유 1. 네트워크 속도가 느려 로딩이 느려지고 표시가 되지 않을 수 있습니다. 연결을 끊었다가 다시 연결해 보세요. 2. 컴퓨터 자체의 네트워크 문제를 확인하여 네트워크에 연결되어 있는지 확인하세요. 네트워크 장치를 다시 시작할 수 있습니다. 방법 2: 유지 관리 및 업데이트: Enterprise WeChat 버전이 너무 낮아서 QR 코드가 생성되지 않을 수 있습니다. 소프트웨어를 최신 버전으로 업그레이드할 수 있습니다. 방법 3, 방화벽 1

WeChat 미니 프로그램에서 슬라이딩 삭제 기능 구현 WeChat 미니 프로그램에서 슬라이딩 삭제 기능 구현 Nov 21, 2023 pm 06:22 PM

WeChat 미니 프로그램에서 슬라이딩 삭제 기능을 구현하려면 특정 코드 예제가 필요합니다. WeChat 미니 프로그램의 인기로 인해 개발자는 개발 과정에서 일부 공통 기능의 구현 문제에 직면하는 경우가 많습니다. 그중 슬라이딩 삭제 기능은 일반적으로 사용되는 기능 요구 사항입니다. 이 기사에서는 WeChat 애플릿에서 슬라이딩 삭제 기능을 구현하는 방법을 자세히 소개하고 구체적인 코드 예제를 제공합니다. 1. 요구 사항 분석 WeChat 미니 프로그램에서 슬라이딩 삭제 기능의 구현에는 다음 사항이 포함됩니다. 목록 표시: 슬라이드 및 삭제할 수 있는 목록을 표시하려면 각 목록 항목에 다음이 포함되어야 합니다.

See all articles