Instantly share code, notes, and snippets.

What would you like to do?
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: ./ image scale factor' ); sys.exit()
f, SC, GCF, WCF = sys.argv[1], float(sys.argv[2]), float(sys.argv[3]), 7/4
img =
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)]) ) )

This comment has been minimized.

codedude commented Jun 16, 2016

Thanks, it works great ;)


This comment has been minimized.

stratosgear commented Nov 16, 2016


This comment has been minimized.

piotrusin commented Nov 18, 2017



This comment has been minimized.

Schizo commented Nov 29, 2017

you can do all one line when you fill it up with ;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment