No matter what flavor of linux distribution you’re using, the default grub bootloader background image is probably pretty generic. Or, maybe you just want to personalize it. Since your system isn’t booted very far, your toolset is rather limited, so there are strict requirements for the image.
It must be exactly 640×480
It can only use up to 14 colors
It must be in .xpm file format
That’s pretty limited when you’re used to digital cameras taking hi resolution pictures with millions of colors, but it will have to do. Use gimp or some other image editing software (I like mtpaint, available in the standard Fedora YUM repositories) to chop your image if you want to play with it visually first.
If you’re all set, or you already have the image ready, use ImageMagick to get your chosen image down to spec. (ImageMagick is also available in the standard repos).
$ convert image123.png -colors 14 -resize 640×480 grubimg.xpm
ImageMagick’s “convert” tool will recognize the file types and take care of all the magick for you. All that’s left to do is put this image file in your grub.conf
splashimage=(hd0,0)/boot/grub/grubimg.xpm
You can also gzip the image file if you want, in which case you would probably call it grubimg.xpm.gz. You can call it splash or fallout3 or whatever you want as long as you specify the path to it in grub.conf.

Note: I used this image from Fallout 3 which required me to open it in GIMP and change the color mode to indexed. (Image -> Mode -> Indexed…) and then I changed the maximum colors to 14. I thought it was a good picture to use because there’s not much variation of color in the first place. I can’t really see a difference in the before & after except for the smaller file size.
9:43 am
Grub can load a native image or an archived image. So if your boot area is really small, you can save some space by gzipping the resulting image file:
$ gzip grubimg.xpm