- 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 }