Last active
August 17, 2017 21:04
-
-
Save pmslavin/15d664c222569d8761c4923007af3c82 to your computer and use it in GitHub Desktop.
Bitmap glyph-to-include codec
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
""" | |
Bitmap glyph-to-include codec | |
..####.. ..####.. | |
.#.##.#. .#.##.#. | |
##.##.## -d ##.##.## | |
######## => 60,90,219,255,129,66,60,0 ==> ######## | |
#......# #......# | |
.#....#. .#....#. | |
..####.. ..####.. | |
........ ........ | |
""" | |
import sys | |
from string import maketrans | |
def font(src): | |
tr = maketrans(".#","01") | |
char = [] | |
for i,r in enumerate(src.split(),1): | |
char.append(str(int(r.translate(tr), 2))) | |
if not i&7: | |
print(",".join(char)+',') | |
char = [] | |
def defont(src): | |
tr = maketrans("01",".#") | |
for char in src.split(): | |
for uint in char.split(',')[:-1]: | |
b = bin(int(uint)).replace("0b","") | |
fline = '0'*(8-len(b)) + b | |
print(fline.translate(tr)) | |
print('') | |
if __name__ == "__main__": | |
src = sys.stdin.read() | |
if sys.argv[-1:][0] == '-d': | |
defont(src) | |
else: | |
font(src) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment