G2Plot-QRCode基于 G2Plot 的强大二维码渲染库

联合创作 · 2023-09-30 12:54

G2Plot-QRCode 是一个基于 G2Plot 的强大二维码渲染库。LIVE DEMOCodeSandbox.

安装

$ npm i --save g2plot-qrcode

使用

渲染

import { G2Plot } from '@antv/g2plot';
import { adaptor, defaultOptions } from 'g2plot-qrcode';

const qr = new G2Plot('container', {
  // 二维码文本
  data: 'Hello, g2plot qrcode!',
  // 间距
  padding: 8,
  // 宽高
  width: 120,
  height: 120,
  // 背景前景颜色
  backgroundColor: 'white',
  foregroundColor: 'black',
  typeNumber: 0,
  correctLevel: 'H', // L M H Q
  // 样式自定义
  pixelStyle: (pixelData) => ({}),
}, adaptor, defaultOptions);

qr.render();

更新

qr.update({
  data: 'hello world!',
})

配置项

export interface QRCodeOptions {
  /** qrcode 的内容文本 */
  readonly data: string;
  /** 边框间距,默认 8px */
  readonly padding?: number;
  /** 二维码大小宽高,默认都是 120px */
  readonly width: string;
  readonly height: string;
  /** 二维码 correctLevel,默认 H */
  readonly correctLevel?: 'L' | 'M' | 'Q' | 'H';
  /** 二维码 typeNumber,默认 0 */
  readonly typeNumber?: any;
  // readonly effect?: 'fusion' | 'round' | 'rect';
  /** 二维码前景色,默认 black */
  readonly foregroundColor?: string;
  /** 二维码背景色,默认 white */
  readonly backgroundColor?: string;
  /** 二维码的 icon 中心图标,默认无 */
  readonly icon?: {
    readonly image: string; // 图片
    readonly width?: number; // 图片宽高
    readonly height?: number;
  };
  /** 单元格样式,默认无 */
  readonly pixelStyle?: (pixelData: PixelData) => object;
}

功能

  1. 常规二维码库能力都支持,支持宽高 padding 等基础配置
  2. 支持自定义前景背景
  3. 支持自定义 detection position 的样式(颜色、描边、渐变等)
  4. 支持 icon 以及大小
  5. 交互事件(二维码不再是静态图)
浏览 1
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报