/go-qrcode

:sparkles: QR Code encoder (Go)

Primary LanguageGoMIT LicenseMIT

go-qrcode

Package qrcode implements a QR Code encoder. Build Status

A QR Code is a matrix (two-dimensional) barcode. Arbitrary content may be encoded, with URLs being a popular choice :)

Each QR Code contains error recovery information to aid reading damaged or obscured codes. There are four levels of error recovery: Low, medium, high and highest. QR Codes with a higher recovery level are more robust to damage, at the cost of being physically larger.

Install

go get -u github.com/yougg/go-qrcode/...

A command-line tool qrcode will be built into $GOPATH/bin/.

Usage

import qrcode "github.com/yougg/go-qrcode"
  • Create a PNG image:

      var png []byte
      png, err := qrcode.Encode("https://example.org", qrcode.Medium, 256)
    
  • Create a PNG image and write to a file:

      err := qrcode.WriteFile("https://example.org", qrcode.Medium, 256, "qr.png")
    
  • Create a PNG image with custom colors and write to file:

      err := qrcode.WriteColorFile("https://example.org", qrcode.Medium, 256, color.Black, color.White, "qr.png")
    
  • Create a PNG image with logo and custom size and margin: code ,err:=qrcode.EncodeWithLogo(qrcode.Medium, "123", logo, 100, 200, 5) //The function define: func EncodeWithLogo(level RecoveryLevel, str string, logo image.Image,width, height, margin int) (*bytes.Buffer, error){xxx}

  • Create a png qr image with image file:

      pngQr := qrcode.ImageGenerator(qrCode,"background.jpg",200)
    
  • Create a gif qr image with gif file:

      gifQr := qrcode.GifGenerator(qrCode,"background.gif",200)
    

All examples use the qrcode.Medium error Recovery Level and create a fixed 256x256px size QR Code. The last function creates a white on black instead of black on white QR Code.

The maximum capacity of a QR Code varies according to the content encoded and the error recovery level. The maximum capacity is 2,953 bytes, 4,296 alphanumeric characters, 7,089 numeric digits, or a combination of these.

TestImage

avatar avatar

Documentation

godoc

Demoapp

http://go-qrcode.appspot.com

CLI

A command-line tool qrcode will be built into $GOPATH/bin/.

qrcode -- QR Code encoder in Go
https://github.com/yougg/go-qrcode

Flags:
  -o string
        out PNG file prefix, empty for stdout
  -s int
        image size (pixel) (default 256)

Usage:
  1. Arguments except for flags are joined by " " and used to generate QR code.
     Default output is STDOUT, pipe to imagemagick command "display" to display
     on any X server.

       qrcode hello word | display

  2. Save to file if "display" not available:

       qrcode "homepage: https://github.com/yougg/go-qrcode" > out.png

Links