qr: rsc.io/qr Index | Files | Directories

package qr

import "rsc.io/qr"

Package qr encodes QR codes.


Package Files

png.go qr.go

type Code Uses

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 Uses

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

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

func (*Code) Black Uses

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

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

func (*Code) Image Uses

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

Image returns an Image displaying the code.

func (*Code) PNG Uses

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 Uses

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


codingPackage coding implements low-level QR coding details.
gf256Package gf256 implements arithmetic over the Galois Field GF(256).
libqrencodePackage libqrencode wraps the C libqrencode library.

Package qr imports 8 packages (graph) and is imported by 28 packages. Updated 2020-01-26. Refresh now. Tools for package owners.