50 lines
1.2 KiB
Python
Executable File
50 lines
1.2 KiB
Python
Executable File
#!/usr/bin/python
|
|
import sys
|
|
import scipy.misc
|
|
import numpy as n
|
|
|
|
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 len(sys.argv)==1:
|
|
print("Arguments:")
|
|
print(" [png image file] : prints ascii in stdout")
|
|
print(" [text file] [png image file] : convert characters to pixels in image")
|
|
sys.exit(0)
|
|
inFile = sys.argv[1]
|
|
if inFile.lower().endswith('.png'):
|
|
png2asc(inFile)
|
|
else:
|
|
asc2png(inFile,sys.argv[2])
|
|
|
|
|