• Stars
    star
    518
  • Rank 85,414 (Top 2 %)
  • Language
    Go
  • License
    MIT License
  • Created about 6 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

To help gophers generate QR Codes with customized styles, such as color, block size, block shape, and icon.

go-qrcode

Go Report Card go.dev reference Go GitHub release (latest SemVer) GitHub go.mod Go version License

QR code (abbreviated from Quick Response Code) is the trademark for a type of matrix barcode (or two-dimensional barcode) first designed in 1994 for the automotive industry in Japan. A barcode is a machine-readable optical label that contains information about the item to which it is attached. A QR code uses four standardized encoding modes (numeric, alphanumeric, byte/binary, and kanji) to store data efficiently; extensions may also be used

Features

  • Normally generate QR code across version 1 to version 40.
  • Automatically analyze QR version by source text.
  • Specifying cell shape allowably with WithCustomShape, WithCircleShape (default is rectangle)
  • Specifying output file's format with WithBuiltinImageEncoder, WithCustomImageEncoder (default is JPEG)
  • Not only shape of cell, but also color of QR Code background and foreground color.
  • WithLogoImage, WithLogoImageFilePNG, WithLogoImageFileJPEG help you add an icon at the central of QR Code.
  • WithBorderWidth allows to specify any width of 4 sides around the qrcode.
  • WebAssembly support, check out the Example and README for more detail.
  • support Halftone QR Codes, check out the Example.

Install

go get -u github.com/yeqown/go-qrcode/v2

Quick Start

link to CODE

package main

import (
	"github.com/yeqown/go-qrcode/v2"
	"github.com/yeqown/go-qrcode/writer/standard"
)

func main() {
	qrc, err := qrcode.New("https://github.com/yeqown/go-qrcode")
	if err != nil {
		fmt.Printf("could not generate QRCode: %v", err)
		return
	}
	
	w, err := standard.New("../assets/repo-qrcode.jpeg")
	if err != nil {
		fmt.Printf("standard.New failed: %v", err)
		return
	}
	
	// save file
	if err = qrc.Save(w); err != nil {
		fmt.Printf("could not save image: %v", err)
	}
}

Options

const (
	// EncModeNone mode ...
	EncModeNone encMode = 1 << iota
	// EncModeNumeric mode ...
	EncModeNumeric
	// EncModeAlphanumeric mode ...
	EncModeAlphanumeric
	// EncModeByte mode ...
	EncModeByte
	// EncModeJP mode ...
	EncModeJP
)

// WithEncodingMode sets the encoding mode.
func WithEncodingMode(mode encMode) EncodeOption {}

const (
	// ErrorCorrectionLow :Level L: 7% error recovery.
	ErrorCorrectionLow ecLevel = iota + 1
	
	// ErrorCorrectionMedium :Level M: 15% error recovery. Good default choice.
	ErrorCorrectionMedium
	
	// ErrorCorrectionQuart :Level Q: 25% error recovery.
	ErrorCorrectionQuart
	
	// ErrorCorrectionHighest :Level H: 30% error recovery.
	ErrorCorrectionHighest
)

// WithErrorCorrectionLevel sets the error correction level.
func WithErrorCorrectionLevel(ecLevel ecLevel) EncodeOption {}

following are some shots:


Built-in Writers

Of course, you can also code your own writer, just implement Writer interface.

Migrating from v1

go-qrcode.v2 is a major upgrade from v1, and it is not backward compatible. v2 redesigned the API, and it is more flexible and powerful. Features are split into different modules (according to functionality).

  • github.com/yeqown/go-qrcode/v2 core
  • github.com/yeqown/go-qrcode/writer/standard writer/imageFile
  • github.com/yeqown/go-qrcode/writer/terminal writer/terminal

Check example/migrating-from-v1 for more details.

Links

More Repositories

1

fasthttp-reverse-proxy

reverse http / websocket proxy based on fasthttp
Go
212
star
2

protoc-gen-fieldmask

Generate FieldMask utility functions for protobuf
Go
34
star
3

infrastructure

collecting some tools those will be useful while coding a web application with Golang
Go
28
star
4

cassem

(WIP) A distributed Configuration Center Application.
Go
24
star
5

rpc

remote procedure call. DO NOT use it in PRODUCTION.
Go
23
star
6

gitlab-flow

A CLI tool to help manage the flow of developing on gitlab.
Go
17
star
7

socket.io-app

socket.io based realtime app
JavaScript
13
star
8

tracing-practice

opentracing practice in golang micro server (gRPC + HTTP)
Makefile
7
star
9

recipe

my own recipe App codes including recipe-spider, recipe-mobile, recipe-server, maybe post some blog to record this.
JavaScript
5
star
10

websocket

websocket protocol implemented base Go
Go
5
star
11

opentelemetry-quake

Work like a Quake of OpenTelemetry toolchain, you have no need to know how it works, just use the power to thunder.
Go
4
star
12

apollo-synchronizer

Help developer to sync between local file and remote apollo portal web since portal web is so messy to use
Go
4
star
13

go-watcher

go-watcher for hot reloading with your command ~
Go
4
star
14

shorturl

ShortUrl System Coding
Go
3
star
15

cached-repository

a basic repository to support cached data in memory and is based LRU-K cache replacing algorithm
Go
3
star
16

playground

coding practice in go, java, python and some third-party libs usage demo
Go
2
star
17

gateway

api gateway for micro server
Go
2
star
18

snowflake

twitter's global ID generator alg implementation based c, and it provide extension for lua and CLI program.
C
2
star
19

gRBAC-server

admin api server of gRBAC, also view
Go
1
star
20

reedsolomon

Go
1
star
21

log

A light log library for go application.
Go
1
star
22

gorm-opentracing

opentracing support for gorm2
Go
1
star
23

zimuku-spider

spider to crawl subtitles files and extract, clean so I can use sentences in subtitles
SRecode Template
1
star
24

hashtable

golang hashtable implements based redis dict
Go
1
star