Go to file
Tom da1b656868 Encode mixed numeric/alphanumeric data segments as one alphanumeric data segment if that's more efficient. Also add error check to NewWithForcedVersion(): Check if the content is too large for the requested QR code version. 2020-06-17 20:51:04 +01:00
bitset gofmt -s 2016-01-22 15:39:53 -08:00
qrcode Add DisableBorder option to disable the QR Code quiet zone entirely, thus no more margins/borders. Defaults to borders for compatibility. 2019-10-17 17:33:59 +01:00
reedsolomon Switch to github import paths. 2015-03-15 20:10:10 +00:00
.gitignore add cli, add method QRCode.Write(), update readme 2016-12-31 23:44:36 +08:00
.travis.yml Update TravisCI config to use Go 1.7. 2017-04-04 21:53:34 +01:00
LICENSE Initial commit 2014-04-16 22:30:31 +01:00
README.md Update README.md 2019-10-27 15:24:51 +00:00
encoder.go Encode mixed numeric/alphanumeric data segments as one alphanumeric data segment if that's more efficient. Also add error check to NewWithForcedVersion(): Check if the content is too large for the requested QR code version. 2020-06-17 20:51:04 +01:00
encoder_test.go Encode mixed numeric/alphanumeric data segments as one alphanumeric data segment if that's more efficient. Also add error check to NewWithForcedVersion(): Check if the content is too large for the requested QR code version. 2020-06-17 20:51:04 +01:00
example_test.go Add DisableBorder option to disable the QR Code quiet zone entirely, thus no more margins/borders. Defaults to borders for compatibility. 2019-10-17 17:33:59 +01:00
go.mod add go.mod 2020-01-13 17:04:35 +08:00
qrcode.go Encode mixed numeric/alphanumeric data segments as one alphanumeric data segment if that's more efficient. Also add error check to NewWithForcedVersion(): Check if the content is too large for the requested QR code version. 2020-06-17 20:51:04 +01:00
qrcode_decode_test.go Export NewWithForcedVersion 2020-05-19 08:15:19 +00:00
qrcode_test.go Add DisableBorder option to disable the QR Code quiet zone entirely, thus no more margins/borders. Defaults to borders for compatibility. 2019-10-17 17:33:59 +01:00
regular_symbol.go Add DisableBorder option to disable the QR Code quiet zone entirely, thus no more margins/borders. Defaults to borders for compatibility. 2019-10-17 17:33:59 +01:00
regular_symbol_test.go Add DisableBorder option to disable the QR Code quiet zone entirely, thus no more margins/borders. Defaults to borders for compatibility. 2019-10-17 17:33:59 +01:00
symbol.go gofmt -s 2016-01-22 15:39:53 -08:00
symbol_test.go golint fixes 2014-04-23 00:17:54 +01:00
version.go Switch to github import paths. 2015-03-15 20:10:10 +00:00
version_test.go Switch to github import paths. 2015-03-15 20:10:10 +00:00

README.md

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/skip2/go-qrcode/...

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

Usage

import qrcode "github.com/skip2/go-qrcode"
  • Create a 256x256 PNG image:

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

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

      err := qrcode.WriteColorFile("https://example.org", qrcode.Medium, 256, color.Black, color.White, "qr.png")
    

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.

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/skip2/go-qrcode

Flags:
  -d	disable QR Code border
  -i	invert black and white
  -o string
    	out PNG file prefix, empty for stdout
  -s int
    	image size (pixel) (default 256)
  -t	print as text-art on stdout

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/skip2/go-qrcode" > out.png

Maximum capacity

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.

Borderless QR Codes

To aid QR Code reading software, QR codes have a built in whitespace border.

If you know what you're doing, and don't want a border, see https://gist.github.com/skip2/7e3d8a82f5317df9be437f8ec8ec0b7d for how to do it. It's still recommended you include a border manually.