Page 1 of 1

Classe TGif

PostPosted: Thu Dec 07, 2023 8:00 pm
by oliveiros junior
Olá, boa tarde!

Existe alguma definição especifica do GIF para utilizar a classe TGif?

Att.,

Oliveiros Junior

Re: Classe TGif

PostPosted: Fri Dec 08, 2023 8:22 am
by Antonio Linares
Dear Oliveiros,

The kind of GIF file that is needed is a standard GIF file that follows the GIF89a specification. This means that the GIF file should have the following characteristics:

It should have a header that identifies the file as a GIF file and specifies the version of the format. The header should be six bytes long and contain the ASCII characters “GIF89a”

It should have a logical screen descriptor that defines the dimensions and properties of the logical screen. The logical screen descriptor should be seven bytes long and contain the following fields: logical screen width, logical screen height, global color table flag, color resolution, sort flag, size of global color table, background color index, and pixel aspect ratio

It should have a global color table that contains the colors used in the image. The global color table should be present if the global color table flag is set to 1 in the logical screen descriptor. The size of the global color table should be 2^(size of global color table + 1) bytes, where each byte represents one color component (red, green, or blue) of a color.

It should have one or more image descriptors that define the dimensions and properties of each image in the file. The image descriptor should start with a byte containing the ASCII character “,”, followed by the following fields: image left position, image top position, image width, image height, local color table flag, interlace flag, sort flag, size of local color table, and local color table (optional).

It should have one or more image data blocks that contain the compressed pixel data of each image in the file. The image data blocks should start with a byte containing the LZW minimum code size, followed by one or more sub-blocks of data. Each sub-block should start with a byte containing the size of the sub-block, followed by the actual data bytes. The last sub-block should have a size of zero, indicating the end of the image data

It should have one or more graphic control extensions that specify the animation parameters of each image in the file. The graphic control extension should start with a byte containing the ASCII character “!”, followed by a byte containing the value 249, followed by a byte containing the block size (usually 4), followed by the following fields: reserved, disposal method, user input flag, transparent color flag, delay time, transparent color index, and block terminator (a byte containing the value 0

It should have an application extension that specifies the looping behavior of the animation. The application extension should start with a byte containing the ASCII character “!”, followed by a byte containing the value 255, followed by a byte containing the block size (usually 11), followed by the application identifier (“NETSCAPE”), followed by the application authentication code (“2.0”), followed by a sub-block containing the loop count, followed by a block terminator (a byte containing the value 0)

It should have a trailer that marks the end of the file. The trailer should be a single byte containing the ASCII character “;”

Re: Classe TGif

PostPosted: Fri Dec 08, 2023 2:20 pm
by karinha
oliveiros junior wrote:Olá, boa tarde!

Existe alguma definição especifica do GIF para utilizar a classe TGif?

Att.,

Oliveiros Junior


caro, explique: "definição especifica" ??

O que você quer saber realmente?

Obg. abs.

Regards, saludos.

Re: Classe TGif

PostPosted: Fri Dec 08, 2023 3:57 pm
by oliveiros junior
Thanks master Antonio.

Re: Classe TGif

PostPosted: Fri Dec 08, 2023 4:00 pm
by oliveiros junior
Olá Karinha,

Tenho um gif que não roda de jeito nenhum com a TGif. Ao executar, ele sai do sistema sem gerar nenhuma mensagem. Vou verificar com quem fez o gif se ele atende as especificações citadas pelo Antônio Linhares acima.

Obrigado pela atenção.

Oliveiros Junior

Re: Classe TGif

PostPosted: Fri Dec 08, 2023 4:23 pm
by karinha
Oliveiros, como você está fazendo?

Code: Select all  Expand view

#include "FiveWin.ch"
#include "gif.ch"

function Main()

   local oDlg

   DEFINE DIALOG oDlg TITLE "Attention"

   @ 2, 11 SAY "Waiting to use the calculator"

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT PlaceGif( oDlg )

return nil

function PlaceGif( oDlg )

   local oGif

   @ 19, 10 GIF oGif FILENAME "..\gifs\loading.gif" OF oDlg

return nil

   //  LOCAL oGif

   // @ 61.50, 0  GIF oGif FILE ".\AMBIENTY.GIF" SIZE 230, 100 ADJUST

   /*
   IF FILE( "AMBIENTY.GIF" )

      @ 54.00, 01 GIF oGif FILE ".\AMBIENTY.GIF" SIZE 1019, 240 ADJUST

      // TELA CHEIA
      // @ 54.00, 01 GIF oGif FILE ".\AMBIENTY.GIF" SIZE 1019, 582 ADJUST

      oGif:lTransparent := .T.

   ENDIF
   */


   //   @ 050, 900 GIF oGif FILE ".\HALO.GIF" SIZE 090, 080 ADJUST OF oRebar

Abs.
 


Regards, saludos.

Re: Classe TGif

PostPosted: Fri Dec 08, 2023 9:28 pm
by sysctrl2
Antonio, Gracias por le explicación
pero solo queremos saber como
se programan en FWH :D :) :( :o :shock:

Re: Classe TGif

PostPosted: Sat Dec 09, 2023 8:23 am
by Antonio Linares
FWH\samples\testgif.prg, testgif2.prg, testgifr.prg

Re: Classe TGif

PostPosted: Sat Dec 09, 2023 12:46 pm
by oliveiros junior
Olá Karinha,

Eu peguei os exemplos testgif.prg, testgif2.prg, testgifr.prg e apenas troquei o nome do meu gif e coloquei gif na pasta gifs. Ele compila mas não executa o programa.

Att.,

Oliveiros Junior

Re: Classe TGif

PostPosted: Sun Dec 10, 2023 8:29 pm
by jll-fwh
Hola a todos.

Antonio, eso si es una magnifica explicación técnica de 10. :D

Yo, documentando y verificando que todo estaba correcto de este programa pReproducir ver 1.5 32bits que en breve subiré para que se pueda descargar, me paso lo mismo que a oliveiros junior. Una de las noches se me ocurrió cambiar el Gif de fondo blanco a otro de fondo negro, hice una copia de seguridad y sin probarlo lo deje. Al día siguiente ejecuto el programa y se cerraba automáticamente sin errores cuando el día anterior funciona perfectamente. No tenia ni idea que pasaba cuando el código estaba perfecto. Estuve probando de todo durante un par de horas y nada, hasta que decidí dejarlo todo exactamente igual a cuando funcionaba todo perfecto. Yo uso el Gif para emular un grafico de sonido y es la leche porque con los métodos puedes iniciarlo, pararlo, etc, cuando cambia de canción automáticamente, detenerlo, en espera o pararlo el programa lo detiene, lo para o deja que continúe. El truco es magnifico.

Cual era el problema, pues sencillamente el archivo GIF. no son todos validos para FWH y ahora entenderéis la extensa explicación de Antonio. La clase funciona perfecta, si tenéis este problema es el GIF.

oliveiros junior, tu problema es el GIF.

Imagen1:
Image

Yo estoy usando como reproductor de música mi programa usando ActiveX con el API de WMP ( windows media player ). Según microsoft se queda como reproductor para windows 11 y posteriores.

Espero que os sirva la explicación.
Un abrazo;
Javier Lloris
javierllorisprogramador@gmail.com

Blogs personales:
Programación: https://javierlloris.blogspot.com/
Japonés: https://bitacorajaponesa.blogspot.com/
Cubos de Rubik: https://www.instagram.com/jllorisperson ... 2ybz0gmvul
Tengo una colección de unos 100 cubos de todo tipo de formas geométricas, todos resueltos, en instagram solo hay unos cuentos cubos.