Back to

Package qr

Latest Go to latest

The latest major version is .

Published: Jun 5, 2018 | License: BSD-3-Clause | Module:


Package qr encodes QR codes.


type Code

type Code struct {
	Bitmap []byte // 1 is black, 0 is white
	Size   int    // number of pixels on a side
	Stride int    // number of bytes per row
	Scale  int    // number of image pixels per QR pixel

A Code is a square pixel grid. It implements image.Image and direct PNG encoding.

func Encode

func Encode(text string, level Level) (*Code, error)

Encode returns an encoding of text at the given error correction level.

func (*Code) Black

func (c *Code) Black(x, y int) bool

Black returns true if the pixel at (x,y) is black.

func (*Code) Image

func (c *Code) Image() image.Image

Image returns an Image displaying the code.

func (*Code) PNG

func (c *Code) PNG() []byte

PNG returns a PNG image displaying the code.

PNG uses a custom encoder tailored to QR codes. Its compressed size is about 2x away from optimal, but it runs about 20x faster than calling png.Encode on c.Image().

type Level

type Level int

A Level denotes a QR error correction level. From least to most tolerant of errors, they are L, M, Q, H.

const (
	L Level = iota // 20% redundant
	M              // 38% redundant
	Q              // 55% redundant
	H              // 65% redundant

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier