The OLED I am using has a built in controller and display RAM that I write to. Here is what I have come up with...
Use a pallet of 8 16bpp colors. The first half of each byte represents how many pixels are that color (in a row), while the second half shows the color. If there are more then 7 pixels in a row the first half would hold the value of 0 which would then tell the program to read the next byte. That way for pixels that have 1-7 colors in a row it only takes one byte to store them and for pixels 8-255 in a row it only takes two bytes. I think this way I could compress the image to a little over 1K. Now I just need a way to make Gimp save it as my custom format or write a program to convert an image to it.
Edit:I decided to do it by hand as it would take longer to write code to do it. I have not used struct objects very much before but how does this look?
typedef struct {
static uint_8 width;
static uint_8 hight;
static uint_16 *color_map;
static uint_8 *data_map;
}mf_img;
Would this allow me to do something like this?
mf_img splash;
splash.width=128;
splash.hight=96;
splash.color_map={1,2,3,4,5,6,7,8};
splash.data_map={0,129,15,23,0,45.............};
Also using static will make the data be stored in ROM right?
Thanks,
Justin