go-tinyqr

An experimental minimal QR Code generator  http://go-qrcode.appspot.com
git clone https://git.ce9e.org/go-tinyqr.git

commit
bcdd5e378222dd9f20da94a99c0101d30ebf3a50
parent
cf5f9fa2f0d847edb8e038db7ed975e239095e1a
Author
tfh <tfh@skip.org>
Date
2019-01-03 00:52
Merge pull request #19 from pseyfert/smallerQRcode

create smaller QR codes with ToSmallString

Diffstat

M qrcode.go 39 +++++++++++++++++++++++++++++++++++++++

1 files changed, 39 insertions, 0 deletions


diff --git a/qrcode.go b/qrcode.go

@@ -552,3 +552,42 @@ func (q *QRCode) ToString(inverseColor bool) string {
  552   552 	}
  553   553 	return buf.String()
  554   554 }
   -1   555 
   -1   556 // ToSmallString produces a multi-line string that forms a QR-code image, a
   -1   557 // factor two smaller in x and y then ToString.
   -1   558 func (q *QRCode) ToSmallString(inverseColor bool) string {
   -1   559 	bits := q.Bitmap()
   -1   560 	var buf bytes.Buffer
   -1   561 	// if there is an odd number of rows, the last one needs special treatment
   -1   562 	for y := 0; y < len(bits)-1; y += 2 {
   -1   563 		for x := range bits[y] {
   -1   564 			if bits[y][x] == bits[y+1][x] {
   -1   565 				if bits[y][x] != inverseColor {
   -1   566 					buf.WriteString(" ")
   -1   567 				} else {
   -1   568 					buf.WriteString("█")
   -1   569 				}
   -1   570 			} else {
   -1   571 				if bits[y][x] != inverseColor {
   -1   572 					buf.WriteString("▄")
   -1   573 				} else {
   -1   574 					buf.WriteString("▀")
   -1   575 				}
   -1   576 			}
   -1   577 		}
   -1   578 		buf.WriteString("\n")
   -1   579 	}
   -1   580 	// special treatment for the last row if odd
   -1   581 	if len(bits)%2 == 1 {
   -1   582 		y := len(bits) - 1
   -1   583 		for x := range bits[y] {
   -1   584 			if bits[y][x] != inverseColor {
   -1   585 				buf.WriteString(" ")
   -1   586 			} else {
   -1   587 				buf.WriteString("▀")
   -1   588 			}
   -1   589 		}
   -1   590 		buf.WriteString("\n")
   -1   591 	}
   -1   592 	return buf.String()
   -1   593 }