def __init__(self, text, ecl=None): """Set up the encoder with the input text. This will encode the text, and create a matrix with the resulting codewords""" enc = TextEncoder() self.matrix = enc.encode(text, ecl) self.height = 0 self.width = 0
def __init__(self, text): """Set up the encoder with the input text. This will encode the text, and create a matrix with the resulting codewords""" enc = TextEncoder() codewords = enc.encode(text) self.width = 0 self.height = 0 matrix_size = enc.mtx_size self.matrix = [[None] * matrix_size for _ in range(0, matrix_size)] placer = DataMatrixPlacer() placer.place(codewords, self.matrix)
def __init__(self, text, sz=None): """Set up the encoder with the input text. This will encode the text, and create a matrix with the resulting codewords""" self.image = None enc = TextEncoder() self.codewords = enc.encode(text, sz=sz) self.width = 0 self.height = 0 self.matrix_size = enc.mtx_size self.regions = enc.regions self.matrix = [[None] * self.matrix_size[1] for _ in range(0, self.matrix_size[0])] placer = DataMatrixPlacer() placer.place(self.codewords, self.matrix)
def test_encoding(self): """Test that text is correctly encoded, and also that padding and error codewords are correctly added""" correct_encodings = { "hi": [105, 106, 129, 74, 235, 130, 61, 159], "banana": [99, 98, 111, 98, 111, 98, 129, 56, 227, 236, 237, 109, 16, 221, 163, 60, 171, 76], "wer das liest ist 31337": [120, 102, 115, 33, 101, 98, 116, 33, 109, 106, 102, 116, 117, 33, 106, 116, 117, 33, 161, 163, 56, 129, 83, 116, 244, 3, 40, 16, 79, 220, 144, 76, 17, 186, 175, 211, 244, 84, 59, 71]} from textencoder import TextEncoder enc = TextEncoder() for key, value in correct_encodings.items(): self.assertEqual([ord(char) for char in enc.encode(key)], value)
def test_encoding(self): """Test that text is correctly encoded, and also that padding and error codewords are correctly added""" correct_encodings = { "hi": [105, 106, 129, 74, 235, 130, 61, 159], "banana": [ 99, 98, 111, 98, 111, 98, 129, 56, 227, 236, 237, 109, 16, 221, 163, 60, 171, 76 ], "wer das liest ist 31337": [ 120, 102, 115, 33, 101, 98, 116, 33, 109, 106, 102, 116, 117, 33, 106, 116, 117, 33, 161, 163, 56, 129, 83, 116, 244, 3, 40, 16, 79, 220, 144, 76, 17, 186, 175, 211, 244, 84, 59, 71 ] } from textencoder import TextEncoder enc = TextEncoder() for key, value in correct_encodings.items(): self.assertEqual([ord(char) for char in enc.encode(key)], value)
def __init__(self, text, options=None): """ The options hash currently supports three options: * ttf_font: absolute path to a truetype font file used to render the label * ttf_fontsize: the size the label is drawn in * label_border: number of pixels space between the barcode and the label * bottom_border: number of pixels space between the label and the bottom border * height: height of the image in pixels """ self.options = options self.text = text self.height = 0 self.width = 0 encoder = TextEncoder() self.encoded_text = encoder.encode(self.text) log.debug("Encoded text is %s", self.encoded_text) self.checksum = self.calculate_check_sum() log.debug("Checksum is %d", self.checksum) self.bars = encoder.get_bars(self.encoded_text, self.checksum) log.debug("Bars: %s", self.bars)