Ver Mensaje Individual
  #1  
Antiguo 02-03-2011
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Reputación: 17
gaston260 Va por buen camino
como unir un gif uno al lado de otro ?

Hola gente me gustaria saver como puedo unir varios gif animados uno al lado de otro ! estuve buscando y no encuentro nada hasta ahora jeje lo unico que llegue a hacer es esto
Código Delphi [-]
unit Unit1;

interface

uses

JPEG, Windows, Classes, Graphics, Forms, Controls,
  FileCtrl, StdCtrls, ExtCtrls, Buttons, Spin, ComCtrls, Dialogs,
  Messages, SysUtils, Variants,
  GIFImage, ExtDlgs;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    OpenPictureDialog1: TOpenPictureDialog;
    OpenPictureDialog2: TOpenPictureDialog;
    OpenPictureDialog3: TOpenPictureDialog;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
OpenPictureDialog1.Execute;
Image1.Picture.LoadFromFile(OpenPictureDialog1.Filename);
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
OpenPictureDialog2.Execute;
Image2.Picture.LoadFromFile(OpenPictureDialog2.Filename);
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
OpenPictureDialog3.Execute;
Image3.Picture.LoadFromFile(OpenPictureDialog3.Filename);
end;


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++


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;


// Directorio es el directorio con las imagenes
// y Resultado el archivo jpg donde se guarda la tira
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 + '\*.gif*', 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;

end.


despues del separador //++++++++++++++++++++++++++++++++++++++++++++++++++++++++ hay un codigo que esta en http://www.clubdelphi.com/foros/show...=unir+imagenes espero me puedan ayudar !

Saludos !
Responder Con Cita