Esse artigo faz parte da revista Clube Delphi edição 8. Clique aqui para ler todos os artigos desta edição


Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 

TGifImage – Componente para realizar operações com arquivos formato .Gif

 

Para delírio total, mais um componente freeware nesta seção! Na edição anterior o escolhido foi o TzipMaster, componente que tem tudo para se tornar um padrão entre os usuários do Delphi. A presença deste mês é menos ilustre: TgifImage, uma coletânea que dá ao desenvolvedor o poder de processar imagens GIF. Na verdade, TgifImage não é um conjunto de objetos: são arquivos .PAS com várias funções exportadas para tratamento de imagens GIF. Isto não tira o mérito da ferramenta: é difícil imaginar uma funcionalidade com estes arquivos que a unit gifimage.pas não seja capaz de executar. A unit executa desde a simples abertura de um arquivo GIF até operações como:

 

n Leitura do cabeçalho (header) do arquivo;

n Exibição da paleta de cores utilizada pelo arquivo;

n Otimização do arquivo;

n Exibição de gifs animados e recuperação de frames de um gif composto;

n Conversão de BMP para GIF, e vice-versa;

n Conversão de AVI para GIF, e vice-versa;

n E muito mais!

 

Apesar do Delphi estar cada vez mais dentro da realidade “Internet”, a exibição de GIFs, mesmo na versão 5, ainda não é suportada pela ferramenta. A própria Borland já indica o Delphi como ferramenta para desenvolvimento Web. Espera-se que as próximas versões já venham com este recurso embutido, visto que o padrão gif89, amplamente utilizado na internet, é aberto e pode ser implementado por qualquer pessoa. Enquanto isto, vamos nos aproveitar desta ótima ferramenta, que, além de tudo, é compatível com todas as versões do Delphi.

Obviamente, toda a funcionalidade do objeto poderia ser exposta aqui, por falta de espaço. Deixo esta tarefa para os arquivos de help que acompanham a unidade, e para os diversos exemplos anexados. Porém, apesar de variados, os demos não são de fácil compreensão. A seguir, alguns exemplos básicos são destrinchados, para que a iniciação à ferramenta seja mais agradável.

 

 

Tela de uns dos programas deexemplo que vem com o componente

 

Exibindo arquivos GIF em um componente TImage:

Está é uma das operações mais simples da ferramenta. Primeiramente, a unit gifmage.pas deve ser instalada, como se a instalação de um componente estivesse sendo feita. Siga os passos:

 

n Selecione o menu Component;

n Clique na opção Install Component...

n Na caixa de diálogo Install Component, digite o caminho do arquivo na opção Unit File Name:

 

C:\GifImage\gifimage.pas

 

E Ok! A partir deste momento, o objeto Timage (paleta Additional) será capaz de carregar e salvar figuras do tipo GIF.

 

Nota: Esta operação também irá habilitar o filtro *.GIF no objeto TopenPictureDialog.

 

Nota2: Todo formulário que se utilizar desta característica, deverá possuir a unit GIFIMAGE em sua seção uses.

 

Exibindo um GIF Animado:

A operação é a mesma! Ao instalar o arquivo gifimage.pas, o objeto Timage também estará apto a exibir gifs animados!

 

Convertendo de GIF para BMP

O código abaixo ilustra esta operação:

 

Uses gifimage;

 

procedure TForm1.Button1Click(Sender: TObject);

var

   GIF : TGIFImage;

   Bitmap : Tbitmap;

begin

   GIF :=TGIFImage.Create;

   try

     GIF.LoadFromFile('c:\delphi.gif');

     Bitmap :=Tbitmap.Create;

   try

      Bitmap.Assign(GIF);

      Bitmap.SaveToFile('c:\delphi.bmp');

   finally

      Bitmap.Free;

   end;

   finally

   GIF.Free;

end;

end;

 

Convertendo de BMP para GIF:

É a mesma operação ilustrada acima. Basta trocar os valores de origem e destino:

 

uses GifImage;

 

var

Bitmap : Tbitmap;

GIF : TGIFImage;

begin

Bitmap :=

Tbitmap.Create;

try

Bitmap.LoadFromFile(‘c:\teste.bmp’);

 

GIF :=

TGIFImage.Create;

try

GIF.Assign(Bitmap);

 

GIF.SaveToFile(‘c:\teste.gif’);

finally

GIF.Free;

end;

finally

Bitmap.Free;

end;

end;

 

Veja o programa de exemplo em funcionamento:

 

 

Conclusão

Os exemplos acima dão apenas uma pequena idéia dos recursos que esta ferramenta pode oferecer. Conforme dito anteriormente, os exemplos que a acompanham deverão ser utilizados como guia de referência. A unit é freeware, com fontes, e compatível com Delphi5, 6. Está disponível para download em nosso site, no endereço http://www.clubedelphi.com.br/revista/edicao8/tgifimage.zip.