software

You can use gimp to save the image in .xbm format.
.xbm is a C data array.
It is very easy to then go through the data array and do setDot() API calls
to turn on the pixels based on the data in the Array.

But you will also want to make sure the array is in flash memory by using the PROGMEM extensions.
Then you will need to call pgm_read_byte() to read the data bytes from program memory.

Here is an example function that reads the data from program memory and plots it.

void glcd::DrawBitmapXBM_P(uint8_t width, uint8_t height, uint8_t *xbmbits, 
			uint8_t x, uint8_t y, uint8_t fg_color, uint8_t bg_color)
{
uint8_t xbmx, xbmy;
uint8_t xbmdata;

	/*
	 * Traverse through the XBM data byte by byte and plot pixel by pixel
	 */
	for(xbmy = 0; xbmy < height; xbmy++)
	{
		for(xbmx = 0; xbmx < width; xbmx++)
		{
			if(!(xbmx & 7))	// read the flash data only once per byte
				xbmdata = pgm_read_byte(xbmbits++);

			if(xbmdata & _BV((xbmx & 7)))
				this->SetDot(x+xbmx, y+xbmy, fg_color); // XBM 1 bits are fg color
			else
				this->SetDot(x+xbmx, y+xbmy, bg_color); // XBM 0 bits are bg color
		}
	}

}

--- bill