Una posible solución es utilizat bitmaps con PixelFormat=pf24bitPara representar un nivel de gris pon el mismo valor en las tres componentes R G y B.
El siguiente trozo de codigo lee los valores desde un fichero y los asigna a una imagen llamada Bitmap que ya existe
-----------------
FILE *f_in;
f_in=fopen(NombreImagen.c_str(),"rb");
if (f_in==NULL)
{
ShowMessage("Error en la apertura del fichero");
return false;
}
puntos=new char[3*lcolumnas];
unsigned char *linea;
for (i=0;i<lfilas;i++)
{
fread((void *)puntos,3,lcolumnas,f_in);
linea=(unsigned char *) Bitmap->ScanLine[i];
for (j=0;j<lcolumnas;j++)
{
linea[3*j]=puntos[3*j+1];
linea[3*j+1]=puntos[3*j];
linea[3*j+2]=puntos[3*j+2];
}
}
fclose(f_in);
------
Saludos
Joan