The idea of this function is to fade the top half only of the picture (make it gradually darker). Here is what I have but it seems to be making all of the top half solid black.
def fadeDownFromBlack(pic1):
w=getWidth(pic1)
h=getHeight(pic1)
for y in range(0,h/2):
for x in range(0,w):
px=getPixel(pic1,x,y)
setBlue(px,y*(2.0/h))
setRed(px,y*(2.0/h))
setGreen(px,y*(2.0/h))
Let's look at just one line here:
setBlue(px,y*(2.0/h))
and key part here is
y*(2.0/h)
y changes, as you go down. Let's try some simple values for y and h. Let's say h is 100 and we will examine when y is both 0 and 50 (h/2). For y = 0, we get 0. For y = 50, we get 1. If your range of values for the colors is 256 with 0 being the darkest, then no wonder this is black. What you have is a range of values from 0. to 1., but I'm guessing what you want is to take that number and times it by the old color value.
What you want is:
setBlue(px,y*(2.0/h)*getBlue(px))
and similar things for the other colors.