Una posible solucion puede ser esta, una funcion que concatena todas las imagenes jpg de un directorio en un tira:
Código Delphi
[-]
uses JPEG;
function Max(i,j: Integer): Integer;
begin
if i > j then
Result:= i
else
Result:= j;
end;
procedure Concatenar(Destino, Origen: TGraphic);
var
Bitmap: TBitmap;
begin
Bitmap:= TBitmap.Create;
try
Bitmap.Width:= Max(Origen.Width, Destino.Width);
Bitmap.Height:= Origen.Height + Destino.Height;
Bitmap.Canvas.Draw(0,0,Origen);
Bitmap.Canvas.Draw(0,Origen.Height,Destino);
Destino.Assign(Bitmap);
finally
Bitmap.Free;
end;
end;
procedure HacerTira(Directorio: string; Resultado: string);
var
SR: TSearchRec;
Tira: TBitmap;
Temp: TJPEGImage;
begin
Tira:= TBItmap.Create;
Temp:= TJPEGImage.Create;
try
if Copy(Directorio, Length(Directorio), 1) = '\' then
Delete(Directorio, Length(Directorio), 1);
if FindFirst(Directorio + '\*.jp*', faAnyfile, SR) = 0 then
repeat
Temp.LoadFromFile(Directorio + '\' + SR.Name);
Concatenar(Tira,Temp);
until FindNext(SR) <> 0;
FindClose(SR);
Temp.Assign(Tira);
Temp.SaveToFile(Resultado);
finally
Tira.Free;
Temp.Free;
end;
end;
Aunque hice algunas pruebas y se queda sin memoria bastante rapido si las imagenes son muchas y grandes
. Pero puede que te sirva para tener algunas ideas.