And for uploading using post, php has a default max upload size of... 2 megs i do believe, it'd be hard to get a file that huge, but I'm sure it'd be possible with huge builds.
Also, to get around the maximum time limit, you could always check the difference in time since the script started executing and the current time in the loops that set each pixel, and if the time is, say, 25 seconds, give the user back a partial image using imagegd() and then they just need to upload their partial image aswell as their pixelcrap.txt and you can continue processing the rest of the image.
I hope I expressed my idea clearly, I may implement it later, however for me it's a lot easier to just set_time_limit().