mirror of https://github.com/gogits/gogs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.3 KiB
57 lines
1.3 KiB
// Package utils contain some utilities which are needed to create barcodes |
|
package utils |
|
|
|
import ( |
|
"image" |
|
"image/color" |
|
|
|
"github.com/boombuler/barcode" |
|
) |
|
|
|
type base1DCode struct { |
|
*BitList |
|
kind string |
|
content string |
|
} |
|
|
|
type base1DCodeIntCS struct { |
|
base1DCode |
|
checksum int |
|
} |
|
|
|
func (c *base1DCode) Content() string { |
|
return c.content |
|
} |
|
|
|
func (c *base1DCode) Metadata() barcode.Metadata { |
|
return barcode.Metadata{c.kind, 1} |
|
} |
|
|
|
func (c *base1DCode) ColorModel() color.Model { |
|
return color.Gray16Model |
|
} |
|
|
|
func (c *base1DCode) Bounds() image.Rectangle { |
|
return image.Rect(0, 0, c.Len(), 1) |
|
} |
|
|
|
func (c *base1DCode) At(x, y int) color.Color { |
|
if c.GetBit(x) { |
|
return color.Black |
|
} |
|
return color.White |
|
} |
|
|
|
func (c *base1DCodeIntCS) CheckSum() int { |
|
return c.checksum |
|
} |
|
|
|
// New1DCode creates a new 1D barcode where the bars are represented by the bits in the bars BitList |
|
func New1DCodeIntCheckSum(codeKind, content string, bars *BitList, checksum int) barcode.BarcodeIntCS { |
|
return &base1DCodeIntCS{base1DCode{bars, codeKind, content}, checksum} |
|
} |
|
|
|
// New1DCode creates a new 1D barcode where the bars are represented by the bits in the bars BitList |
|
func New1DCode(codeKind, content string, bars *BitList) barcode.Barcode { |
|
return &base1DCode{bars, codeKind, content} |
|
}
|
|
|