Artigo Clube Delphi Edição 8 - TGifImage – Componente para realizar operações com arquivos formato .Gif

Artigo da Revista Clube Delphi Edição 8.

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.

Artigos relacionados