1. Prepare a suitable image. The image must be 640x480 pixels and have a maximum of 14 colours, because the VGA mode used during boot has a resolution of 640x480 pixels with 16 colours and 2 colours are reserved for text (white and black). If you're using the Gimp graphics editor, simply ensure that your image is 640x480 pixels (the titlebar of the image window displays the image size) and then select the menu option Image>Mode>Indexed, entering 14 as the "Maximum number of colours".
2. Save the image to your /boot/grub directory with an extension of .xpm.gz
3. Edit your /boot/grub/grub.conf file so that the splashimage entry points to our new image file. This path will be relative to the start of the /boot partition, so /boot/grub/myimage.xpm.gz would be written as (hdX,Y)/grub/myimage.xpm.gz (where X is the BIOS/Grub disk number and Y is the BIOS/Grub partition number).
title Fedora (18.104.22.168-137.fc8)
kernel /vmlinuz-22.214.171.124-137.fc8 ro root=/dev/hda6 quiet
Reboot to see the result.
The XPM format used by Grub is very unusual: it's actually a snippet of C source code containing an ascii-to-colour translation table and the image encoded as ASCII art. You can see this by using gunzip to decompress the file and then viewing it as text.
Tips on preparing a grub splash image:
* Choose an image with a small number of colours to avoid excessive dithering or solarization when converting to indexed format.
* Grub displays text in white with a black drop-shadow, so it should be visible against any colour background -- but it it's best to avoid white or really light colours for maximum readability.