Devi scegliere un formato per rappresentare le immagini. Dal primitivo bmp al xpm, dal gif al png, oppure il vettoriale svg. Tutti questi formati gestiscono anche la trasparenza.
X Window System utilizza X BitMap (XBM) nel formato monocromatico e può essere caricato direttamente nel tuo codice C. Parlando di matrice, con le librerie di X11 puoi visualizzare la tua pixmap. Esempio:
#define alieno_width 3
#define alieno_height 8
static char alieno_bits[] = {0x13, 0x00, 0x15};
...
XCreateBitmapFromData(display, window, alieno_bits,alieno_width,alieno_height);
...
Sempre per X11, un'evoluzione del XBM, + colori e canale alpha è il X Pixmap (XPM).
Esempio:
/* XPM */
static char * alieno[] = {
/* <Valori> */
"3 8 2 1",
/* <Colori> */
"* c #ffffff",
". c #000000",
/* <Pixels> */
"*.*",
".*.",
"*.*",
".*.",
"*.*",
".*.",
"*.*",
".*.",
};
Su Windows le bitmap sono gestite dalle API GDI (Graphics Device Interface) con le apposite funzioni. Altra soluzione per rappresentare altre tipologie di immagini è ricorrere a librerie dedicate tipo FreeImage
http://freeimage.sourceforge.net
~Max~