123456789101112131415161718192021222324252627282930 |
- package qr
- import (
- "github.com/boombuler/barcode/utils"
- )
- type errorCorrection struct {
- rs *utils.ReedSolomonEncoder
- }
- var ec = newErrorCorrection()
- func newErrorCorrection() *errorCorrection {
- fld := utils.NewGaloisField(285, 256, 0)
- return &errorCorrection{utils.NewReedSolomonEncoder(fld)}
- }
- func (ec *errorCorrection) calcECC(data []byte, eccCount byte) []byte {
- dataInts := make([]int, len(data))
- for i := 0; i < len(data); i++ {
- dataInts[i] = int(data[i])
- }
- res := ec.rs.Encode(dataInts, int(eccCount))
- result := make([]byte, len(res))
- for i := 0; i < len(res); i++ {
- result[i] = byte(res[i])
- }
- return result
- }
|