Hi Toby, I'm not familiar with the Nokia display, so it may have some special requirements. The code I referenced above reads a bitmap from a file. In a reasonably memory efficient manner, first it reads just the header chunks. Then it knows how much memory is required to host the color palette. When it gets to the actual image data, it will have allocated only enough memory to read one scanline of data at a time from the file and sends that to the display.
I can publish [using the LPC1768] a 24-bit image of 480x272 (down-samples to 16-bit color for the display I'm using). One of my test images is nearly 400Kbytes in file size. I don't know your technique, but it blows up quickly if try to cache the whole image in ram at some color depth.
Now, having thought about this once more while writing this - when I allocate the color palette, I host it in "native" format from the bmp file - which is wasting memory. I could down-sample it to 16-bit color when I pick it up from the file system. That would free a bit more memory, and make it a bit faster to boot!
The slowest part is a trade-off. Since BMP files are more or less stored upside down, I could either read the file from start to end (and write the display from bottom to top), or read the file from end to start (and write the display from top to bottom). I'm not sure which would be faster - but the latter was the path I chose.
I noticed that there are some *.bmp and *.jpg image conversion programs around (some with source code) for the Nokia display 130 by 130. Some of them will spit out an array of C source syntax pixel color data for use in a *.h file. Has anyone worked with any of these?
http://norm-online.net/NOKIA_6100_BMP_Converter.php
http://www.olimex.com/dev/soft/BmpToArray.zip
Or other ones out there that are a good choice?
I assume you could just run through the array with pixel color calls. Some other drivers seem to have a load BMP function. Has anyone done bitmaps with the current cookbook Nokia LCD driver?