- commit
- 4bd85f5c1ab152b35529cd369c114a130aa731c6
- parent
- cf02323edc040f5263d08b45a60bc8abdc3bde18
- Author
- Deleplace <deleplace2015@gmail.com>
- Date
- 2017-03-22 14:48
Extra flag -t to print as 2D char map on STDOUT.
Diffstat
| M | qrcode/main.go | 27 | ++++++++++++++++++++++++++- |
1 files changed, 26 insertions, 1 deletions
diff --git a/qrcode/main.go b/qrcode/main.go
@@ -4,6 +4,7 @@ 4 4 package main 5 5 6 6 import ( -1 7 "bytes" 7 8 "flag" 8 9 "fmt" 9 10 "os" @@ -15,6 +16,7 @@ import ( 15 16 func main() { 16 17 outFile := flag.String("o", "", "out PNG file prefix, empty for stdout") 17 18 size := flag.Int("s", 256, "image size (pixel)") -1 19 textArt := flag.Bool("t", false, "print as text-art on stdout") 18 20 flag.Usage = func() { 19 21 fmt.Fprintf(os.Stderr, `qrcode -- QR Code encoder in Go 20 22 https://github.com/skip2/go-qrcode @@ -53,6 +55,12 @@ Usage: 53 55 q, err = qrcode.New(content, qrcode.Highest) 54 56 checkError(err) 55 57 -1 58 if *textArt { -1 59 art := qr2String(q, true) -1 60 fmt.Println(art) -1 61 return -1 62 } -1 63 56 64 var png []byte 57 65 png, err = q.PNG(*size) 58 66 checkError(err) @@ -71,6 +79,23 @@ Usage: 71 79 func checkError(err error) { 72 80 if err != nil { 73 81 fmt.Fprintf(os.Stderr, "%s\n", err)74 -1 os.Exit(0)-1 82 os.Exit(1) -1 83 } -1 84 } -1 85 -1 86 // qr2String produces a multi-line string that forms a QR-code image. -1 87 func qr2String(qr *qrcode.QRCode, inverseColor bool) string { -1 88 bits := qr.Bitmap() -1 89 var buf bytes.Buffer -1 90 for y := range bits { -1 91 for x := range bits[y] { -1 92 if bits[y][x] != inverseColor { -1 93 buf.WriteString(" ") -1 94 } else { -1 95 buf.WriteString("■■") -1 96 } -1 97 } -1 98 buf.WriteString("\n") 75 99 } -1 100 return buf.String() 76 101 }