○概要 
 1ピクセルを、Red1バイト(値は0〜255)、Green1バイト、Blue1バイトの3バイトで表し、 
それを行数×列数個並べた1次元の配列としてビットマップを表します。 
 つまり、 
#include <gtk/gtk.h>
#define IMAGE_WIDTH      幅 
#define IMAGE_HEIGHT    高さ 
guchar rgb_buf[IMAGE_WIDTH * IMAGE_HEIGHT * 3];
 として画像をrgb_bufで表すと、(x,y)の座標のピクセルは、 
赤:  rgb_buf[ (y * IMAGE_WIDTH + x) * 3 ] 
緑:  rgb_buf[ (y * IMAGE_WIDTH + x) * 3 + 1 ] 
青:  rgb_buf[ (y * IMAGE_WIDTH + x) * 3 + 2 ] 
 の3バイトで表されます。 
さて、この画像をGdkRgb関数群に渡して処理をするのですが、その前に、
gdk_rgb_init()
を呼び出す必要があります。 
 画像をwidgetに表示するには、gdk_draw_rgb_imageを使用します。 
16bits/pixelのディザリングを使う場合は、以下のようになります。 
gdk_draw_rgb_image (widget->window, widget->style->fg_gc[GTK_STATE_NORMAL], 
                        0, 0, IMAGE_WIDTH, IMAGE_HEIGHT, 
                        GDK_RGB_DITHER_MAX, rgb_buf, IMAGE_WIDTH * 3); 
例えばGtkDrawingAreaに表示する場合は、事前に
GtkWidget *d_area;
d_area = gtk_drawing_area_new(); 
gtk_drawing_area_size (GTK_DRAWING_AREA (d_area), IMAGE_WIDTH, IMAGE_HEIGHT); 
等としておきます。 
ともあれ、GDK Reference Manualを参照して下さい。