Héctor y Sergio,
Les agradezco mucho la ayuda. El método de Sergio es el más sencillo y efectivamente como comentas, Héctor, tenía problemas con la paleta; sin embargo, como lo voy a pasar a JPG, el bitmap lo creó a 24 bit por pixel y en un RGB con los cada canal al mismo valor tengo el gris correspondiente. Aparantemente estó no me implica mucha carga de procesamiento. Probaré la solución de Héctor a ver si hay diferencia en el desempeño.
A continuación les muestro mi solución:
Faltó comentar que el archivo de imagen RAW lo tengo en memoria en un arreglo de byte de 416*416.
Código:
procedure ConvierteImagen;
var
BMP : TBitmap;
ContRenglon, ContColumna, ContImagen : integer;
Renglon : PByteArray;
begin
BMP := TBitmap.Create;
BMP.HandleType := bmDIB;
BMP.PixelFormat := pf24bit;
BMP.Width := 416;
BMP.Height := 416;
ContImagen := 0;
for ContRenglon := 0 to 415 do
begin
Renglon := BMP.ScanLine[ContRenglon];
for ContColumna := 0 to 415 do
begin
Renglon[ContColumna*3] := Imagen[ContImagen];
Renglon[ContColumna*3+1] := Imagen[ContImagen];
Renglon[ContColumna*3+2] := Imagen[ContImagen];
Inc(ContImagen);
end;
end;
BMP.SaveToFile('C:\HuellaPrueba.bmp');
BMP.Free;
end;
Agradezco mucho su ayuda y cualquier cosa estoy para servirles.
Gracias
Miguel