# From Miller/Ranum chapter 6
# slightly modified by cmc, 11/16/09

from cImage import *

# Listing 6.1
def negativePixel(oldPixel):
    newred = 255 - oldPixel.getRed()
    newgreen = 255 - oldPixel.getGreen()
    newblue = 255 - oldPixel.getBlue()
    newPixel = Pixel(newred, newgreen, newblue)
    return newPixel

# Listing 6.2
def makeNegative(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 = negativePixel(originalPixel)
            newim.setPixel(col,row,newPixel)     

    newim.setPosition(width+1,0)
    newim.draw(myimagewindow)
    myimagewindow.exitOnClick()

filename = input("enter filename, including .gif suffix: ")
makeNegative(filename)
