Gradezco sus respuestas
aqui les mando algo de codigo que utilizo,
primero creo un tipo de datos
type tpimg=^timg;
timg =record
a:array[0..alto] of array[0..ancho] of byte;
end;
despues ago un arreglo de este type
pimg:array of tpimg;
inicializo (segun un Array de direciones dado en lisbox1.items)
//aqui es donde leo los .tiff
[i]setlength(pimg,ListBox1.items.count);
for i:=0 to ListBox1.items.count-1 do
begin
New(pimg[i]);
assignfile(f,ListBox1.items);
reset(f);
seek(f,2048); //salto los comentarios del tiff
[i] for j:=0 to 423 do
blockread(f,pimg[i]^.a[j],sizeof(pimg^.a[j]));
end;
ahora los muestro el selecionado que es >0 y <listbox1.count
BitMap := TBitMap.create;
bitmap.PixelFormat:= pf8bit;
try
BitMap.Height:=alto;
bitmap.Width:=ancho;
for y:=0 to BitMap.Height -1 do
begin
P := BitMap.ScanLine[y];
move(pimg[seleccionado]^.a[y],p^,sizeof(pimg[seleccionado]^.a[y]));
end;
image1.Canvas.Draw(0,0,BitMap);
finally
BitMap.Free;
end;
nota1: no solo las muestro sino que trabajo con todo el conjunto de imagenes
ej.(promedio de estas).
nota2: la solucion momentanea que he dado, es crear memoria solo a la hora de mostrarlas, pero es considerablemente lento,
espero que les sirva y que me puedan ayudar
slds
|