Beans0063 / EasyQRCodeJS-NodeJS

A NodeJS server side QRCode image generator. Support setting Dot style, Logo, Background image, Colorful, Title and more.

Home Page:http://www.easyproject.cn/easyqrcodejs/tryit.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EasyQRCodeJS-NodeJS

EasyQRCodeJS-NodeJS is a NodeJS server side QRCode image generator. Support setting Dot style, Logo, Background image, Colorful, Title and more.

EasyQRCodeJS-NodeJS 是一个 NodeJS 环境下的服务端 JavaScript QRCode 图片生成模块。支持点状风格,Logo,背景图片,规则色彩控制,标题等设置。

Choose what you need

Project Support
EasyQRCodeJS Running with DOM on CLIENT-SIDE . Browser(IE6+, Chrome, Firefox, Safari, Opera, Mobile Safari, Android, Windows Mobile, ETC.), Electron, NW.js, ETC.
EasyQRCodeJS-NodeJS Running without DOM on SERVER-SIDE. Save image to file or get data url text. NodeJS, Electron, NW.js, ETC.

Feature

  • English

    • Save QRCode image file without DOM on server side

    • Support save PNG image file

    • Support get standard base64 image data url text: data:image/png;base64, ...

    • Required Patterns that support dot style

    • Support for Quiet Zone settings

    • Support custom Position Pattern inner fill and outer border color

    • Support custom Alignment Pattern inner fill and outer border color

    • Support custom Timing Patterns vertical, horizontal color

    • Support Logo images (including transparent PNG images)

    • Support Background Image

    • Support for title, subtitle settings

  • 中文

    • 无需 DOM 的服务端 QRCode 图片保存

    • 支持存储为 PNG 图片

    • 支持获得 Base64 编码的标准图形 URL 字符串:data:image/png;base64, ...

    • 支持点形风格的 Required Patterns

    • 支持 Quiet Zone 设置

    • 支持自定义 Position Pattern 内填充和外边框颜色

    • 支持自定义 Alignment Pattern 内填充和外边框颜色

    • 支持自定义 Timing Patterns 垂直,水平颜色

    • 支持 Logo 图片(包括背景透明的 PNG 图片)

    • 支持 Background Image 背景图片

    • 支持标题,副标题设置

Try It!

Try It!

Demo preview

Demo preview

QR Code Structure

QR Code Structure

Installation

npm install easyqrcodejs-nodejs

Basic Usages

const QRCode = require('easyqrcodejs-nodejs');

// Options
var options = {
	text: "www.easyproject.cn/donation"
};

// New instance with options
var qrcode = new QRCode(options);

// Save QRCode image
qrcode.saveImage({
	path: 'q.png' // save path
});

QRCode API

Object

var qrcode = new QRCode(options);
  • Options

      var options = {
     		// ====== Basic
     		text: "https://github.com/ushelp/EasyQRCodeJS",
     		width: 256,
     		height: 256,
     		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
     		
     		// ====== Quiet Zone
     		/*
     		quietZone: 0,
     		quietZoneColor: 'transparent',
     		*/
             
     		// ====== Logo
     		/*
     		logo:"../demo/logo.png", // Relative address, relative to `easy.qrcode.min.js`
     		logo:"http://127.0.0.1:8020/easy-qrcodejs/demo/logo.png", 
     		logoWidth:80, // widht. default is automatic width
     		logoHeight:80 // height. default is automatic height
     		logoBackgroundColor:'#fffff', // Logo backgroud color, Invalid when `logBgTransparent` is true; default is '#ffffff'
     		logoBackgroundTransparent:false, // Whether use transparent image, default is false
     		*/
     	
     		// ====== Backgroud Image
     		/*
     		backgroundImage: '', // Background Image
     		backgroundImageAlpha: 1, // Background image transparency, value between 0 and 1. default is 1. 
     		autoColor: false,
     		*/
     		
     		// ====== Colorful
     		// === Posotion Pattern(Eye) Color
     		/*
     		PO: '#e1622f', // Global Posotion Outer color. if not set, the defaut is `colorDark`
     		PI: '#aa5b71', // Global Posotion Inner color. if not set, the defaut is `colorDark`
     		PO_TL:'', // Posotion Outer color - Top Left 
     		PI_TL:'', // Posotion Inner color - Top Left 
     		PO_TR:'', // Posotion Outer color - Top Right 
     		PI_TR:'', // Posotion Inner color - Top Right 
     		PO_BL:'', // Posotion Outer color - Bottom Left 
     		PI_BL:'', // Posotion Inner color - Bottom Left 
     		*/
     		// === Alignment Color
     		/*
     		AO: '', // Alignment Outer. if not set, the defaut is `colorDark`
     		AI: '', // Alignment Inner. if not set, the defaut is `colorDark`
     		*/
     		// === Timing Pattern Color
     		/*
     		timing: '#e1622f', // Global Timing color. if not set, the defaut is `colorDark`
     		timing_H: '', // Horizontal timing color
     		timing_V: '', // Vertical timing color
     		*/
     		
     		// ====== Title
     		/*
     		title: 'QR Title', // content 
     		titleFont: "bold 18px Arial", //font. default is "bold 16px Arial"
     		titleColor: "#004284", // color. default is "#000"
     		titleBackgroundColor: "#fff", // background color. default is "#fff"
     		titleHeight: 70, // height, including subTitle. default is 0
     		titleTop: 25, // draws y coordinates. default is 30
     		*/
     	   
     		// ====== SubTitle
     		/*
     		subTitle: 'QR subTitle', // content
     		subTitleFont: "14px Arial", // font. default is "14px Arial"
     		subTitleColor: "#004284", // color. default is "4F4F4F"
     		subTitleTop: 40, // draws y coordinates. default is 0
     		*/
     	   
     		// ===== Event Handler
     		/*
     		onRenderingStart: undefined,
     		*/
            
     		// ==== Images format
     		/*
     		format: 'PNG', // 'PNG', 'JPG'
     		compressionLevel: 6, // ZLIB compression level (0-9). default is 6
     		quality: 0.75, // An object specifying the quality (0 to 1). default is 0.75. (JPGs only) 
     		*/
            
     		// ==== Versions
     		/*
     		version: 0 // The symbol versions of QR Code range from Version 1 to Version 40. default 0 means automatically choose the closest version based on the text length.
     		
     		*/           
     }
    Option Required Type Defaults Description
    Basic options --- --- --- ---
    text Y String '' Text
    width N Number 256 Width
    height N Number 256 Height
    colorDark N String #000000 Dark CSS color
    colorLight N String #ffffff Light CSS color
    correctLevel N Enum QRCode.CorrectLevel.H QRCode.CorrectLevel.H
    QRCode.CorrectLevel.Q
    QRCode.CorrectLevel.M
    QRCode.CorrectLevel.L
    dotScale N Number 1.0 Dot style required Patterns. Ranges: 0-1.0
    Quiet Zone --- --- --- ---
    quietZone N Number 0 Quiet Zone size
    quietZoneColor N String transparent Background CSS color to Quiet Zone
    Logo options --- --- --- ---
    logo N String undefined Logo Image Path. If use relative address, relative to easy.qrcode.min.js
    logoWidth N Number undefined Height
    logoHeight N Number undefined Width
    logoBackgroundTransparent N Boolean false Whether the background transparent image(PNG) shows transparency. When true, logoBackgroundColor is invalid
    logoBackgroundColor N String #ffffff Set Background CSS Color when image background transparent. Valid when logoBackgroundTransparent is false
    Backgroud Image options --- --- --- ---
    backgroundImage N String undefined Background Image Path. If use relative address, relative to easy.qrcode.min.js
    backgroundImageAlpha N Number 1.0 Background image transparency. Ranges: 0-1.0
    autoColor N Boolean false Automatic color adjustment
    Posotion Pattern Color options --- --- --- ---
    PO N String undefined Global Posotion Outer CSS color. if not set, the defaut is colorDark
    PI N String undefined Global Posotion Inner CSS color. if not set, the defaut is colorDark
    PO_TL N String undefined Posotion Outer CSS color - Top Left
    PI_TL N String undefined Posotion Inner CSS color - Top Left
    PO_TR N String undefined Posotion Outer CSS color - Top Right
    PI_TR N String undefined Posotion Inner CSS color - Top Right
    PO_BL N String undefined Posotion Outer CSS color - Bottom Left
    PI_BL N String undefined Posotion Inner CSS color - Bottom Left
    Alignment Color options --- --- --- ---
    AO N String undefined Alignment Outer CSS color. if not set, the defaut is colorDark
    AI N String undefined Alignment Inner CSS color. if not set, the defaut is colorDark
    Timing Pattern Color options --- --- --- ---
    timing N String undefined Global Timing CSS color. if not set, the defaut is colorDark
    timing_H N String undefined Horizontal timing CSS color
    timing_V N String undefined Vertical timing CSS color
    Title options --- --- --- ---
    title N String ''
    titleFont N String bold 16px Arial CSS Font
    titleColor N String #000000 CSS color
    titleBackgroundColor N String #ffffff CSS color
    titleHeight N Number 0 Title Height, Include subTitle
    titleTop N Number 30 draws y coordinates.
    SubTitle options --- --- --- ---
    subTitle N String ''
    subTitleFont N String 14px Arial CSS Font
    subTitleColor N String #4F4F4F CSS color
    subTitleTop N Number 0 draws y coordinates. default is 0
    Event Handler options --- --- --- ---
    onRenderingStart(qrCodeOptions) N Function undefined Callback function when rendering start work. can use to hide loading state or handling.
    Images format options --- --- --- ---
    format N String PNG 'PNG' or 'JPG'
    compressionLevel N Number 6 ZLIB compression level between 0 and 9. (PNGs only)
    quality N Number 0.75 An object specifying the quality (0 to 1). (JPGs only)
    Version options --- --- --- ---
    version N Number 0 The symbol versions of QR Code range from Version 1 to Version 40. default 0 means automatically choose the closest version based on the text length. Information capacity and versions of QR Codes NOTE: If you set a value less than the minimum version available for text, the minimum version is automatically used.

Methods

  • saveImage(ImagesFormatOptions)

     //  Save PNG Images to file
     qrcode.saveImage({
     	path: 'q.png' // file path
     });
  • toDataURL()

     // Get standard base64 image data url text: 'data:image/png;base64, ...'
     qrcode.toDataURL().then(data=>{
     	console.info('======QRCode PNG DataURL======')
     	console.info(data)
     });

License

MIT License

End

Email:inthinkcolor@gmail.com

http://www.easyproject.cn

Donation/捐助:


支付宝/微信/QQ/云闪付/PayPal 扫码支付
支付宝/微信/QQ/云闪付/PayPal

我们相信,每个人的点滴贡献,都将是推动产生更多、更好免费开源产品的一大步。

感谢慷慨捐助,以支持服务器运行和鼓励更多社区成员。

We believe that the contribution of each bit by bit, will be driven to produce more and better free and open source products a big step.

Thank you donation to support the server running and encourage more community members.

About

A NodeJS server side QRCode image generator. Support setting Dot style, Logo, Background image, Colorful, Title and more.

http://www.easyproject.cn/easyqrcodejs/tryit.html

License:MIT License


Languages

Language:JavaScript 100.0%