G2Plot-QRCode基于 G2Plot 的强大二维码渲染库
G2Plot-QRCode 是一个基于 G2Plot 的强大二维码渲染库。LIVE DEMO, CodeSandbox.
安装
$ 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;
}
功能
- 常规二维码库能力都支持,支持宽高 padding 等基础配置
- 支持自定义前景背景
- 支持自定义 detection position 的样式(颜色、描边、渐变等)
- 支持 icon 以及大小
- 交互事件(二维码不再是静态图)
评论
