import image

def color2gray(color):
    """Convert a color to a shade of gray.
    Parameter: color, a tuple representing an RGB color
    Produces: a tuple representing an equivalent gray
    """
    #brightness = (color[0] + color[1] + color[2]) // 3
    #return (brightness, brightness, brightness)
    (red, green, blue) = color
    luminance = int(0.2126*red + 0.7152*green + 0.0722*blue)
    return (luminance, luminance, luminance)

def grayscale(photo):
	"""Convert a color image to grayscale.
	Parameter: photo, an Image object
	Produces: a new grayscale Image object
	"""
	width = photo.width()
	height = photo.height()
	newPhoto = image.Image(width, height, title = 'Grayscale image')
	for y in range(height):
		for x in range(width):
			color = photo.get(x,y)
			newPhoto.set(x, y, color2gray(color))
	return newPhoto

def warmer_color(color):
    (red, green, blue) = color
    redder = red + 20
    if redder > 255:
        redder = 255
    return (redder, green, blue)

def warmer(photo):
    width = photo.width()
    height = photo.height()
    newPhoto = image.Image(width, height, title = "Warmer image")
    for y in range(height):
        for x in range(width):
            color = photo.get(x,y)
            newPhoto.set(x, y, warmer_color(color))
    return newPhoto

def brighter_channel(channel, factor):
    # Add factor to channel
    # Limit to range 0-255
    return channel

def brighter_color(color, factor):
    red, green, blue = color
    return (brighter_channel(red, factor), 
            brighter_channel(green, factor), 
            brighter_channel(blue, factor))

def brighter(photo, factor):
    width = photo.width()
    height = photo.height()
    newPhoto = image.Image(width, height, title = "Brighter image")
    for y in range(height):
        for x in range(width):
            color = photo.get(x,y)
            newPhoto.set(x, y, brighter_color(color, factor))
    return newPhoto

def main():
    penguin = image.Image(file='penguin.gif', title='Penguin')
    #penguinGray = grayscale(penguin)
    penguinWarmer = warmer(penguin)
    penguin.show()
    penguinWarmer.show()
    image.mainloop()

if __name__=='__main__':
    main()
