There are probably magicians somewhere on the web that will say I'm wrong, but I don't think you can get a browser to stratch an image like that. A background image will be the size you make it -- if you make it big enough for all possible window sizes, that will work; if you make it smaller, it will tile the way it is told to in the stylesheet.
You can achieve most fo the effect you want by doing this...
Set the background colour to the colour you want at the bottom of your image -- yellow, for example.
Make a background image which fades from purple to yellow over a reasonable distance, perhaps something like 400 pixels. You can make that image only 1 pixel wide if you want, and in the stylesheet set it to tile horizontally but not vertically. Like so...
Code:
background-color: #COLOR; [put your bottom color in here]
background-image: url(../images/tile.jpg);
background-repeat: repeat-x;
That should give you what you want.
Rob
P.S.
There is a way to stretch a background image, but it's not supported in all browsers, and it may only work for horizontal stretching, not vertical. You can Google for it.