Skip to content

Instantly share code, notes, and snippets.

@Heshmatkhah
Forked from cdiener/asciinator.py
Created March 16, 2016 10:30
Show Gist options
  • Save Heshmatkhah/f71377e4de96599c1101 to your computer and use it in GitHub Desktop.
Save Heshmatkhah/f71377e4de96599c1101 to your computer and use it in GitHub Desktop.
Convert image to ascii art
import sys; from PIL import Image; import numpy as np
chars = np.asarray(list(' .,:;irsXA253hMHGS#9B&@'))
if len(sys.argv) != 4: print( 'Usage: ./asciinator.py image scale factor' ); sys.exit()
f, SC, GCF, WCF = sys.argv[1], float(sys.argv[2]), float(sys.argv[3]), 7/4
img = Image.open(f)
S = ( round(img.size[0]*SC*WCF), round(img.size[1]*SC) )
img = np.sum( np.asarray( img.resize(S) ), axis=2)
img -= img.min()
img = (1.0 - img/img.max())**GCF*(chars.size-1)
print( "\n".join( ("".join(r) for r in chars[img.astype(int)]) ) )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment