UNPKG

easyqrcodejs-nodejs

Version:

NodeJS QRCode generator. Can save image or svg to file, get standard base64 image data url text or get SVG serialized text. Cross-browser QRCode generator for pure javascript. Support Dot style, Logo, Background image, Colorful, Title etc. settings. suppo

253 lines (209 loc) 6.96 kB
const QRCode = require("../index"); const fs = require("fs"); // ================================ PNG Configs var config = { // ====== Basic text: "www.easyproject.cn/donation", width: 256, height: 256, quietZone: 0, colorDark: "#000000", colorLight: "#ffffff", correctLevel: QRCode.CorrectLevel.H, // L, M, Q, H dotScale: 1, // Must be greater than 0, less than or equal to 1. default is 1 }; var config2 = { // ====== Basic text: "www.easyproject.cn/donation", width: 400, height: 400, quietZone: 0, correctLevel: QRCode.CorrectLevel.H, // L, M, Q, H dotScale: 0.5, // Must be greater than 0, less than or equal to 1. default is 1 colorDark: "#473C8B", colorLight: "#FFFACD", // === Posotion Pattern(Eye) Color PI: "#BF3030", PO: "#269926", PI_TL: "#b7d28d", // Position Inner - Top Left PO_TL: "#aa5b71", // Position Outer - Top Right AO: "#336699", // Position Outer - Bottom Right AI: "#336699", // Position Inner - Bottom Right // === Aligment color AI: "#009ACD", AO: "#B03060", // === Timing Pattern Color // timing: '#e1622f', // Global Timing color. if not set, the defaut is `colorDark` timing_H: "#ff6600", // Horizontal timing color timing_V: "#cc0033", // Vertical timing color // === Background image backgroundImage: "logo.png", backgroundImageAlpha: 0.3, autoColor: true, }; var config3 = { // ====== Basic text: "www.easyproject.cn/donation", width: 400, height: 400, correctLevel: QRCode.CorrectLevel.H, // L, M, Q, H dotScale: 0.5, // Must be greater than 0, less than or equal to 1. default is 1 colorDark: "#473C8B", colorLight: "#FFFACD", // === Title title: "EasyQRCode", // Title titleFont: "normal normal bold 24px Arial", // Title font titleColor: "#004284", // Title Color titleBackgroundColor: "#ffffff", // Title Background titleHeight: 70, // Title height, include subTitle titleTop: 25, // Title draw position(Y coordinate), default is 30 // === SubTitle subTitle: "nodejs", // Subtitle content subTitleFont: "normal normal normal 20px Arial", // Subtitle font subTitleColor: "#269926", // Subtitle color subTitleTop: 50, // Subtitle drwa position(Y coordinate), default is 50 // === Posotion Pattern(Eye) Color PI: "#BF3030", PO: "#269926", PI_TL: "#b7d28d", // Position Inner - Top Left PO_TL: "#aa5b71", // Position Outer - Top Right AO: "#336699", // Position Outer - Bottom Right AI: "#336699", // Position Inner - Bottom Right // === Aligment color AI: "#009ACD", AO: "#B03060", // === Timing Pattern Color // timing: '#e1622f', // Global Timing color. if not set, the defaut is `colorDark` timing_H: "#ff6600", // Horizontal timing color timing_V: "#cc0033", // Vertical timing color // === Logo // logo: "https://avatars1.githubusercontent.com/u/4082017?s=160&v=4", // LOGO logo: "avatars.png", // LOGO // logo:"http://127.0.0.1:8020/easy-qrcodejs/demo/logo.png", // logoWidth:80, // logoHeight:80, logoBackgroundColor: "#FFF8DC", // Logo backgroud color, Invalid when `logBgTransparent` is true; default is '#ffffff' logoBackgroundTransparent: false, // Whether use transparent image, default is false // === Background image backgroundImage: "logo.png", backgroundImageAlpha: 0.3, autoColor: true, onRenderingStart: function (options) { console.info(`The QRCode file 'q3.${options.format}' was created.`); }, }; var config4 = { // ====== Basic text: "www.easyproject.cn/donation", width: 400, height: 400, correctLevel: QRCode.CorrectLevel.H, // L, M, Q, H dotScale: 0.5, // Must be greater than 0, less than or equal to 1. default is 1 colorDark: "#473C8B", colorLight: "#FFFACD", // QuietZone quietZone: 15, quietZoneColor: "#00CED1", // === Posotion Pattern(Eye) Color PI: "#BF3030", PO: "#269926", PI_TL: "#b7d28d", // Position Inner - Top Left PO_TL: "#aa5b71", // Position Outer - Top Right AO: "#336699", // Position Outer - Bottom Right AI: "#336699", // Position Inner - Bottom Right // === Aligment color AI: "#009ACD", AO: "#B03060", // === Timing Pattern Color // timing: '#e1622f', // Global Timing color. if not set, the defaut is `colorDark` timing_H: "#ff6600", // Horizontal timing color timing_V: "#cc0033", // Vertical timing color // === Logo // logo: "https://avatars1.githubusercontent.com/u/4082017?s=160&v=4", // LOGO logo: "./avatars.png", // LOGO // logo:"http://127.0.0.1:8020/easy-qrcodejs/demo/logo.png", // logoWidth:80, // logoHeight:80, logoBackgroundColor: "#FFF8DC", // Logo backgroud color, Invalid when `logBgTransparent` is true; default is '#ffffff' logoBackgroundTransparent: false, // Whether use transparent image, default is false }; // ================================ PNG Test var qrcode = new QRCode(config); var qrcode2 = new QRCode(config2); var qrcode3 = new QRCode(config3); var qrcode4 = new QRCode(config4); qrcode.saveImage({ path: "q.png", }); qrcode2.saveImage({ path: "q2.png", }); qrcode3.saveImage({ path: "q3.png", }); qrcode4.saveImage({ path: "q4.png", }); qrcode.toDataURL().then((data) => { console.info("======QRCode PNG DataURL======"); console.info(data); console.info(""); }); // ================================ JPG Test var config5 = Object.assign({}, config, { format: "JPG", version: 6, }); var config6 = Object.assign({}, config2, { format: "JPG", }); var config7 = Object.assign({}, config3, { format: "JPG", }); var config8 = Object.assign({}, config4, { format: "JPG", }); var qrcode5 = new QRCode(config5); var qrcode6 = new QRCode(config6); var qrcode7 = new QRCode(config7); var qrcode8 = new QRCode(config8); qrcode5.saveImage({ path: "q.jpg", }); qrcode6.saveImage({ path: "q2.jpg", }); qrcode7.saveImage({ path: "q3.jpg", }); qrcode8.saveImage({ path: "q4.jpg", }); qrcode5.toSVGText().then((data) => { console.info("======QRCode SVG Data Text======"); console.info(data); console.info(""); }); qrcode8.saveSVG({ path: "qrcode.svg", }); var streamConfig = { // ====== Basic text: "https://github.com/ushelp/EasyQRCodeJS-NodeJS", colorLight: "transparent", width: 400, height: 400, quietZone: 10, quietZoneColor: "transparent", }; async function generate() { var streamQrcode = new QRCode(streamConfig); const out = fs.createWriteStream(`qrcode-stream.png`); // const stream = await streamQrcode.toStream(); // stream.pipe(out); // out.on('finish', () => console.log('Finsihed')); streamQrcode.toStream().then((res) => { res.pipe(out).on("finish", () => console.log("Stream Finsihed")); }); } generate();