[asciipron] / convertToAscii.py Repository:
ViewVC logotype

View of /convertToAscii.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6 - (download) (as text) (annotate)
Fri Oct 27 15:08:42 2006 UTC (3 years ago) by synack
File size: 1227 byte(s)
Added stddev functionality, need goopy
# convertToAscii.py
# Generate ASCII art from an image
# Copyright 2006 Jeremy Grosser
# synack at csh.rit.edu

import Image, sys 
from goopy import functional 

chars = ['M', '@', '#', '*', '+', ':', '.', ',', ' ']
chars = functional.reverse(chars)
brightness = []

def convertToAscii(inputFile, outputFile, maxWidth):
	im = Image.open(inputFile)
	output = open(outputFile, 'w')

	if im.size[0] > maxWidth:
		scaleHeight = (im.size[1] * maxWidth) / im.size[0]
		scaleHeight = int(scaleHeight * 0.66)
		im = im.resize((maxWidth, scaleHeight))
	
	for y in range(im.size[1]):
		for x in range(im.size[0]):
			red, green, blue = im.getpixel((x, y))
			bright = red + green + blue
			bright = int(bright / 100)
			brightness.append(bright)
			char = chars[bright]
			output.write(char)
		output.write('\n')
	output.close()

def avgBrightness(im):
	im = im.convert('L')
	sum = 0
	for x in range(im.size[0]):
		for y in range(im.size[1]):
			sum += im.getpixel((x, y))
	avg = sum / (im.size[0] * im.size[1])
	return avg

if len(sys.argv) < 3:
	print 'Usage: convertToAscii <image file> <output file>'
	sys.exit(1)

convertToAscii(sys.argv[1], sys.argv[2], 80)
if functional.stddev(brightness) > 1.9:
	print 'good'
else:
	print 'bad'

synack at csh.rit.edu
ViewVC Help
Powered by ViewVC 1.0.0