Files
q-tools/files/chr2pix
2021-04-09 13:01:04 +03:00

62 lines
1.4 KiB
Python
Executable File

#!/usr/bin/env python3
import sys
import scipy.misc
import numpy as n
from argparse import ArgumentParser
def png2asc(inFile):
im = scipy.misc.imread(inFile)
for r in im:
for c in r:
if c>127:
char = "X"
if c<128:
char = "."
if c==0:
char = " "
sys.stdout.write(char)
sys.stdout.write("\n")
def asc2png(inFile, outFile):
reader = open(inFile,'r')
coords = []
max_c = 0
for r,row in enumerate(reader):
for c,col in enumerate(row):
if col not in (' ', '\n'):
if col == ".":
coords.append((r, c, 127))
else:
coords.append((r, c, 255))
max_c = max(max_c, c)
im=n.zeros( (r, max_c-1), dtype = n.uint8 )
for c in coords:
im[c[0], c[1]] = c[2]
scipy.misc.imsave(outFile, im)
if __name__ == "__main__":
parser = ArgumentParser(
description = "Convert image to ascii, or ascii to image. If only input is defined, it is assumed as image (PNG)."
)
parser.add_argument(
'input',
action = "store"
)
parser.add_argument(
'output',
action = "store",
nargs = '?'
)
opts = parser.parse_args()
if opts.output == None:
png2asc(opts.input)
else:
asc2png(opts.input, opts.output)