El error está en que la parte que pongo ahora debería pintar los píxeles en la ventana pero no lo hace, está en el método abrir_imagen() que es llamado desde mostrar_imagen().
Código C:
Ver originalrgb=65536 * r + 256 * g + b;
/*Marcamos el color obtenido*/
XSetForeground(display, gr_context1, rgb);
/*Dibujamos el punto correspondiente*/
XDrawPoint(display, pixmap, gr_context1, i, j);