Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-03-2011
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 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
  #2  
Antiguo 02-03-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Yo lo veo complicado porque, ¿qué pasa si las imágenes tienen diferente número de fotogramas? ¿Y si usan paletas de color diferentes?

De todas formas, y por si te sirve, échale un vistazo a la bibliteca Vampyre Imaging. Es una de las que más me gustan para manipulación de imágenes "en general". Soporta muchos formatos, incluido el GIF, y posee muchos métodos y clases que facilitan todo tipo de modificaciones.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 03-03-2011
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
Gracias por responder mi consulta Ñuño Martinez lo voy a revisar y doy por descartado este tema ...

Saludos amigo !
Responder Con Cita
  #4  
Antiguo 06-03-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Quizás mi respuesta llegue algo tarde pero pro si puede servir, revisa este hilo

Saludos.
Responder Con Cita
  #5  
Antiguo 08-03-2011
gaston260 gaston260 is offline
Miembro
 
Registrado: ene 2008
Posts: 169
Poder: 17
gaston260 Va por buen camino
muchas gracias Escafandra ! lo voy a revisar luego ahora estoy en otra aplicacion ! pero despues de verlo comento o pregunto , más seguro lo segundo

saludos !
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo Unir archivos avi carmelina Varios 1 22-04-2009 13:01:39
como unir sql y delphi??? jermy MySQL 4 11-01-2007 23:23:51
Imprimir un registro al lado del otro Spynosa Impresión 0 31-01-2005 09:58:47
Copiar el contenido de un dbgrid y pegarlo en otro lado ctronx Varios 3 25-01-2005 17:17:01
como migrar de codigo dbase a otro ¿? clipper u otro ? mainau Varios 3 31-05-2004 22:39:19


La franja horaria es GMT +2. Ahora son las 21:15:38.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi