Ver Mensaje Individual
  #8  
Antiguo 03-03-2008
andarcio andarcio is offline
Miembro
 
Registrado: abr 2007
Posts: 18
Reputación: 0
andarcio Va por buen camino
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
Responder Con Cita