def pack_glyph(glyph, ili9341_t3_font):
glyph_bits = BitString()
header = glyph['header']
glyph_bits.append(Bits(uint=header['encoding'], length=3))
glyph_bits.append(Bits(uint=header['width'], length=ili9341_t3_font['bits_width']))
glyph_bits.append(Bits(uint=header['height'], length=ili9341_t3_font['bits_height']))
glyph_bits.append(Bits(int=header['xoffset'], length=ili9341_t3_font['bits_xoffset']))
glyph_bits.append(Bits(int=header['yoffset'], length=ili9341_t3_font['bits_yoffset']))
glyph_bits.append(Bits(uint=header['delta'], length=ili9341_t3_font['bits_delta']))
for row in glyph['data']:
if row['repeat'] == 0:
glyph_bits.append(Bits(bool=False))
else:
glyph_bits.append(Bits(bool=True))
glyph_bits.append(Bits(uint=row['repeat'] - 1, length=3))
for bit in row['bits']:
glyph_bits.append(Bits(bool=bit == 1))
glyph_bytes = glyph_bits.tobytes()
return glyph_bytes
评论列表
文章目录