# From Miller/Ranum chapter 6
# slightly modified by cmc, 11/16/09

from cImage import *

# Listing 6.3
def grayPixel(oldpixel):
    intensitySum = oldpixel.getRed() + oldpixel.getGreen() + \
                   oldpixel.getBlue()
    aveRGB = intensitySum // 3

    newPixel = Pixel(aveRGB,aveRGB,aveRGB)
    return newPixel

# Listing 6.4
def makeGrayScale(imageFile):
    oldimage = FileImage(imageFile)
    width = oldimage.getWidth()
    height = oldimage.getHeight()

    myimagewindow = ImageWin("Image Processing",2*width,height)   
    oldimage.draw(myimagewindow)

    newim = EmptyImage(width,height)       

    for row in range(height):
        for col in range(width):
            originalPixel = oldimage.getPixel(col,row)
            newPixel = grayPixel(originalPixel)         
            newim.setPixel(col,row,newPixel)

    newim.setPosition(width+1,0)
    newim.draw(myimagewindow)
    myimagewindow.exitOnClick()

filename = input("enter filename, including .gif suffix: ")
makeGrayScale(filename)
