1package datamatrix 2 3import ( 4 "image" 5 "image/color" 6 7 "github.com/boombuler/barcode" 8 "github.com/boombuler/barcode/utils" 9) 10 11type datamatrixCode struct { 12 *utils.BitList 13 *dmCodeSize 14 content string 15} 16 17func newDataMatrixCode(size *dmCodeSize) *datamatrixCode { 18 return &datamatrixCode{utils.NewBitList(size.Rows * size.Columns), size, ""} 19} 20 21func (c *datamatrixCode) Content() string { 22 return c.content 23} 24 25func (c *datamatrixCode) Metadata() barcode.Metadata { 26 return barcode.Metadata{barcode.TypeDataMatrix, 2} 27} 28 29func (c *datamatrixCode) ColorModel() color.Model { 30 return color.Gray16Model 31} 32 33func (c *datamatrixCode) Bounds() image.Rectangle { 34 return image.Rect(0, 0, c.Columns, c.Rows) 35} 36 37func (c *datamatrixCode) At(x, y int) color.Color { 38 if c.get(x, y) { 39 return color.Black 40 } 41 return color.White 42} 43 44func (c *datamatrixCode) get(x, y int) bool { 45 return c.GetBit(x*c.Rows + y) 46} 47 48func (c *datamatrixCode) set(x, y int, value bool) { 49 c.SetBit(x*c.Rows+y, value) 50} 51