Decodeur de Gif PB

Programmation d'applications complexes
Avatar de l’utilisateur
Ar-S
Messages : 9476
Inscription : dim. 09/oct./2005 16:51
Contact :

Decodeur de Gif PB

Message par Ar-S »

Voilà le décodeur GIF de NetMaestro que j'ai retrouvé dans mes archives de PB 4.10 (que ça passe vite !)

Comme le lien du topic original est mort, je vous le réup.
Topic : http://www.purebasic.fr/english/viewtop ... 40&t=57656
Code exemple ICI

ENJOYEZ :mrgreen:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Decodeur de Gif PB

Message par blendman »

salut
est-ce que tu aurais encore le code de ce décodeur gif ?

Je cherche un encodeur gif animé pour PB (pour sortir un gifs animé, avec des images qu'on crée par exemple).
Avatar de l’utilisateur
Ar-S
Messages : 9476
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Decodeur de Gif PB

Message par Ar-S »

Je l'ai retrouvé, je te l'ai ré-up.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Decodeur de Gif PB

Message par blendman »

Merci beaucoup :)

Dommage, il n'y a que le décodeur gif, et pas d'encodeur (c'est plutôt ce que je recherche ^^), mais c'est déjà vraiment bien.
Avatar de l’utilisateur
TazNormand
Messages : 1294
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Decodeur de Gif PB

Message par TazNormand »

Bien, il est temps que Fred se penche enfin sur l'intégration -entre autres- du format GIF au sein de PB, je sais que KCC sera d'accord avec moi.

Fred, si tu passes par là, peux-tu nous dire pourquoi ce manque, autant je comprends à l'époque où il tait question de licence/redevance sur le GIF, mais maintenant qu'il est libre de droit, est-ce prévu ?
Image
Image
Avatar de l’utilisateur
Ar-S
Messages : 9476
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Decodeur de Gif PB

Message par Ar-S »

C'est vrai que meme si ce format est pas récent. Il est pratique et reste énormément utilisé sur le web. Que ce soit pour les emotes, le boucles amusantes etc.. Maintenant qu'il est effectivement libre, son intégration à PB serait super.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Decodeur de Gif PB

Message par kernadec »

bjr
Sur le site MSDN, j' ai pas essayé, mais a partir du code VB ont pourrait adapter un code pour PB
dommage! c'est seulement avec Windows et NET Framework.
https://msdn.microsoft.com/fr-fr/librar ... -snippet-2

Cordialement
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Decodeur de Gif PB

Message par blendman »

En fait, le gif animé est aussi utilisé dans l'animation, surtout pour le preview (pas pour les images finales bien sûr, car la qualité n'est pas assez bonne).
Après, si vraiment Fred souhaitait ajouter un nouveau format, peut-être que le Apng serait plus intéressant, car ça fonctionne sur le web, et niveau qualité c'est vraiment très bon.

Exemple :
http://apng.onevcat.com/demo/
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Decodeur de Gif PB

Message par kernadec »

Pour APNG il y a un petit soucis, je crois qu'il n 'est pas reconnu par tous les navigateurs, enfin c'est ce qu'on dit ???

Voilà une solution c'est peut être d'utiliser le mode "runprogramme" pour apngasm.exe,
de plus il existe en version pour windows et linux et le code en C
a cette adresse:
https://sourceforge.net/projects/apngasm/files/2.0/

voici pour exemple de fonctionnement le fichier readme.txt d'une version 2.3, d'ailleurs je sais plus ou je l'ai trouvée?

Cordialement

APNG Assembler 2.3

by Max Stepin
maxst@users.sourceforge.net
---------------------------
Creates APNG animation from PNG/TGA image sequence.

Usage:
apngasm output.png frame001.png [options]
apngasm output.png frame*.png [options]

Options :
1 10 : frame delay is 1/10 sec. (default)
/l2 : 2 loops (default is 0, forever)
/f : skip the first frame
/kp : keep palette
/kc : keep color type

----------------------------------------------------------------
Example 1:

Let's say you have following frame sequence:
frame01.png
frame02.png
frame03.png

And you want to have 3/4 seconds delay between frames.
The correct command will be

apngasm output.png frame01.png 3 4

----------------------------------------------------------------
Example 2:

The same as above, but you added "invisible" frame00.png :
frame00.png - invisible
frame01.png
frame02.png
frame03.png

The correct command will be

apngasm output.png frame00.png 3 4 /f

That way APNG supported browsers and image viewers
will show frame01-frame02-frame03 animation,
while IE and Chrome will display static frame00.png image.

Some people like to put "your browser sucks" message in that
frame00.png but keep in mind that you will see that message
in thumbnails when you are browsing image folders,
or using google image search. So be careful.

----------------------------------------------------------------
Example 3:

apngasm output.png frame01.png

That way you'll get 1/10 sec delay.

----------------------------------------------------------------
Some optimizations used in APNG Assembler might re-sort the
palette, or change the color type from RGBA and RGB modes
to RGB and indexed modes. Those optimizations are only performed
when they are lossless, but if you want to avoid changing the
palette or colortype, use those switches to turn them off:

/kp : keep palette
/kc : keep color type
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Decodeur de Gif PB

Message par Kwai chang caine »

Un espoir donné de la bouche même de Fred, disant qu'il se pencherait sur ce format

Des années de demande
Un grand nombre de membre
Des pages, des centaines de lignes sur ce sujet.
De nombreux codes puissants créés par les plus grands.
Pour ne citer qu'eux :

Netmaestro
Tssoft
Wilbert

Chacun a créé son gestionnaire de gif.

Le GIF est non seulement le format animé le plus utilisé du web, mais il continue a y avoir des nouvelles utilisations qui naissent de nos jours...

Après tous ces faits, toutes ces années, toutes ses personnes, il est de mon avis, inconcevable que pb continue à s'obstiner à ne pas intégrer un des plus grands format d'images libre de droit de l'informatique

Surtout qu'encore une fois les codes prouvent que c'est possible puisqu'ils fonctionnent tous. Et certains à merveille.

C'est vrai qu'ils ne modifient pas l'image, comme le fait l'encodeur de pb (resize, mise en mémoire etc..) mais une bonne partie du travail a déjà été fait.

C'est vraiment un sujet incompréhensible. ..
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Decodeur de Gif PB

Message par kernadec »

bsr
voici le test de désassemblage du fichier éléphant.png de blendman

;1) récupérer le fichier "éléphant.png" de blendman : http://apng.onevcat.com/demo/

;2) télécharger apngdis.exe ici : https://sourceforge.net/projects/apngdis/files/2.8/

Code : Tout sélectionner

RunProgram("C:\PureBasic\apngdis_gui.exe","c:\purebasic\elephant.png" ,#Null$,#PB_Program_Wait)
End
;nous avons aussi a cette adresse URL: https://sourceforge.net/projects/apngdis/files/2.8/
les autres modes programmes : APNG To GIF , GIF To APNG

[Réédit] [pour la mise à jour code de DESASSEMBLAGE]

Exemple DESASSEMBLAGE APNG

Code : Tout sélectionner

;DESASSEMBLAGE   d'un FICHIER APNG

;test extract apng+
;récuperer l'élephant png de blendman    
;http://apng.onevcat.com/demo/

;télécharger apngdis.exe ici :  https://sourceforge.net/projects/apngdis/files/2.8/

chemin$ = "C:\PureBasic\"

image$ = "elephant.png"

; création du dossier travail :  framelephant dans le repetoire C:\PureBasic

CreateDirectory(chemin$  + Left("Fram" + image$, Len(image$)))  ; framelephant

file$  = chemin$  + Left("Fram" + image$, Len(image$)) + "\" + image$
file2$  = chemin$  + Left("Fram" + image$, Len(image$)) + "\"
CopyFile(chemin$  + image$, file$) 

processID.l = RunProgram(chemin$ + "apngdis_gui.exe", file$, #Null$,#PB_Program_Open) 

For i = 1 To 99  ; boucle de temporisation du desassemblage avant Kill process
  
  If i < 10 
    compt$ = "0" + Str(i) + ".png"
  Else
    compt$ = Str(i) + ".png"
  EndIf
  
  Repeat
    
    exit = 0 
    If ReadFile(0,file2$ + "apngframe" + compt$) 
      exit = 1
      CloseFile(0)
      num = 1
    EndIf
    If IsFile(0) : CloseFile(0) : EndIf
    
    If num = 1 : u = u + 1 : EndIf
    
    If u > 99 : exit = 1 : Break 2 : EndIf
    
   Delay(i)
    
  Until  exit = 1 
  
Next i

KillProgram(processID)
CloseProgram(processID)

End 

;########################  DOCUMENTATION  #############################"

; APNG Disassembler 2.8
; 
; Deconstructs APNG files into individual frames.
; 
; http://apngdis.sourceforge.net/
; 
; Copyright (c) 2010-2015 Max Stepin
; maxst@users.sourceforge.net
; 
; License: zlib license
; 
; --------------------------------
; 
; Usage:
; 
; apngdis anim.png [name]
; 
; --------------------------------
; 
; Decoding is implemented by parsing all chunks in the APNG file,
; remuxing them into a sequence of Static PNG images, And then using
; regular (unpatched) libpng To decode them.
; 
; Then, after processing blend/dispose operations, we get a vector of
; full-size frames in 32 bpp As the result.
; 
; 
; 
; Other useful tools:
; 
; APNG Assembler     -  http://apngasm.sourceforge.net/
; gif2apng converter -  http://gif2apng.sourceforge.net/

Exemple ASSEMBLAGE APNG à partir des fichiers apngframe##.png désassemblés contenus dans le dossier "framelephant"

Code : Tout sélectionner

;ASSEMBLAGE APNG   

;télécharger apngasm.exe ici :  https://sourceforge.net/projects/apngdis/files/2.8/

chemin$ = "C:\PureBasic\"

image$ = "elephant_new.png"

;repetoire source frame : framelephant

chemin2$ = "C:\PureBasic\framelephant\"

; ;#doc Exemple  apngasm output.png frame01.png
 RunProgram(chemin$ + "apngasm.exe" + " ", chemin2$+image$ + " " + chemin2$+"apngframe01.png", #Null$, #PB_Program_Read)
; ;RunProgram(chemin$ + "apngasm.exe" + " ", chemin2$+image$ + " " + chemin2$+"apngframe01.png", #Null$, #PB_Program_Read | #PB_Program_Hide)


; ;#doc Exemple 1 apngasm output.png frame01.png 3 4
; RunProgram(chemin$ + "apngasm.exe" + " ", chemin2$+image$ + " " + chemin2$+"apngframe01.png" + " 1 10", #Null$, #PB_Program_Read)  ; | #PB_Program_Hide

; ;#doc Exemple 2 apngasm output.png frame00.png 3 4 /f
; RunProgram(chemin$ + "apngasm.exe" + " ", chemin2$+image$ + " " + chemin2$+"apngframe00.png" + " 3 4" + "/f", #Null$, #PB_Program_Read) 
; " | #PB_Program_Hide"

 
;nom du fichier assemblé "elephant_new.png"
  
End
;########################  DOCUMENTATION  #############################"

; APNG Assembler 2.3
; 
; by Max Stepin 
; maxst@users.sourceforge.net
; #---------------------------
; Creates APNG animation from PNG/TGA image sequence.
; 
; Usage: 
; apngasm output.png frame001.png [options]
; apngasm output.png frame*.png   [options]
; 
; Options :
; 1 10    : frame delay is 1/10 sec. (Default)
; /l2     : 2 loops (Default is 0, ForEver)
; /f      : skip the first frame
; /kp     : keep palette
; /kc     : keep color type
; 
; #----------------------------------------------------------------
; Example 1:
; 
; Let's say you have following frame sequence:
; frame01.png
; frame02.png
; frame03.png
; 
; And you want To have 3/4 seconds delay between frames.
; The correct command will be
; 
; apngasm output.png frame01.png 3 4
; 
; #----------------------------------------------------------------
; Example 2: 
; 
; The same As above, but you added "invisible" frame00.png :
; frame00.png - invisible
; frame01.png
; frame02.png
; frame03.png
; 
; The correct command will be
; 
; apngasm output.png frame00.png 3 4 /f
; 
; That way APNG supported browsers And image viewers 
; will show frame01-frame02-frame03 animation, 
; While IE And Chrome will display Static frame00.png image.
; 
; Some people like To put "your browser sucks" message in that 
; frame00.png but keep in mind that you will see that message 
; in thumbnails when you are browsing image folders, 
; Or using google image search. So be careful.
; 
; #----------------------------------------------------------------
; Example 3: 
; 
; apngasm output.png frame01.png
; 
; That way you'll get 1/10 sec delay.
; 
; #----------------------------------------------------------------
; Some optimizations used in APNG Assembler might re-sort the
; palette, Or change the color type from RGBA And RGB modes
; To RGB And indexed modes. Those optimizations are only performed
; when they are lossless, but If you want To avoid changing the
; palette Or colortype, use those switches To turn them off:
; 
; /kp     : keep palette
; /kc     : keep color type

cordialement
Dernière modification par kernadec le dim. 17/avr./2016 18:47, modifié 3 fois.
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Decodeur de Gif PB

Message par kernadec »

bjr à tous
Voici deux tests PB pour chaque mode de conversion pour ANPG vers GIF et GIF vers ANPG

Cordialement

Mode APNG2GIF

Code : Tout sélectionner

;Mode APNG2GIF

;récuperer l'image elephant png de blendman    
;http://apng.onevcat.com/demo/

;URL du programme de conversion APNG2GIF : https://sourceforge.net/projects/apngdis/files/2.8/

chemin$ = "C:\PureBasic\"
image1$ = "elephant.png"
image2$ = "elephant.gif"

; création du dossier travail :  Framelephant dans le repetoire C:\PureBasic

CreateDirectory(chemin$ + Left("Fram" + image1$, Len(image1$)))  ; Framelephant

file1$  = chemin$ + Left("Fram" + image1$, Len(image1$)) + "\" + image1$
file2$  = chemin$ + Left("Fram" + image1$, Len(image1$)) + "\" + image2$
CopyFile( chemin$ + image1$, file1$) 
                                                      ; Options + " -t 128" + " -b #FF0000"
RunProgram(chemin$ + "apng2gif_gui.exe ", file1$ + " " + file2$ + " -t 128" + " -b 255 0 0" , #Null$, #PB_Program_Read)

End

;########################  DOCUMENTATION  #############################"
;   apng2gif version 1.7
; 
;   This program converts APNG animations into animated GIF format.
;   Wu quantizer is used For true-color files.
; 
;   http://apng2gif.sourceforge.net/
; 
;   Copyright (c) 2010-2015 Max Stepin
;   maxst@users.sourceforge.net
; 
;   License: zlib license
; 
; --------------------------------
; 
;   Changes in version 1.7:
; 
; - new APNG decoder based on apngdis 2.8
; 
; --------------------------------
; 
;   Usage (For command-line version): 
; 
; apng2gif anim.png [anim.gif] [-t tlevel] [-b bcolor]
; 
;   Options:
; 
; -t 128 
; 
;   will set the transparency threshold level As 128, so pixels 
;   With alpha level less than 128 will become fully transparent.
; 
; -b 255 0 0 
; -b "#ff0000"
; 
;   will set the background color As red, so partially transparent 
;   pixels will be composed over red. When -b is used, -t is ignored.
; 
;   When no options are specified, Default threshold is 128, 
;   no background color.
Mode GIF2APNG

Code : Tout sélectionner

;Mode GIF2APNG

;récuperer l'image elephant gif de blendman    
;http://apng.onevcat.com/demo/

;URL du programme de conversion GIF2APNG : https://sourceforge.net/projects/apngdis/files/2.8/

chemin$ = "C:\PureBasic\"
image1$ = "elephant.gif"
image2$ = "elephant.png"

; création du dossier travail :  Giffelephant dans le repetoire C:\PureBasic

CreateDirectory(chemin$ + Left("Giff" + image1$, Len(image1$))) ;  Giffelephant

file1$  =  chemin$ + Left("Giff" + image1$, Len(image1$)) + "\" + image1$
file2$  =  chemin$ + Left("Giff" + image1$, Len(image1$)) + "\" + image2$
CopyFile(  chemin$ + image1$, file1$) 
                                                     ; Options + " -7z" + " -i##" + " -kp" 
RunProgram(chemin$+"gif2apng_gui.exe " , file1$ + " " + file2$ + " -7z" + " -i34"          , #Null$, #PB_Program_Read)

End

;########################  DOCUMENTATION  #############################"
;   gif2apng version 1.9
; 
;   This program converts GIF animations into APNG format.
; 
;   http://gif2apng.sourceforge.net/
; 
;   Copyright (c) 2009-2013 Max Stepin
;   maxst@users.sourceforge.net
; 
;   License: zlib license
; 
; --------------------------------
; 
;   Changes in version 1.9:
; 
; - Code cleanup, cosmetic changes.
; 
; 
;   Changes in version 1.8:
; 
; - Added 7zip And Zopfli compression options.
; 
; --------------------------------
; 
;   Usage:
; 
; gif2apng [options] anim.gif [anim.png]
; 
;   Options:
; 
; -z0  : zlib compression
; -z1  : 7z compression (Default)
; -z2  : zopfli compression
; -i## : number of iterations, Default -i15
; -kp  : keep the palette
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: Decodeur de Gif PB

Message par blendman »

Super sympa, merci Kernadec !

Il existe un utilitaire gratuit pour créer des APNG ?
Ou y'a-t-il moyen de mettre une suite d'images et de sortir un APNG ou un gif ?
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Decodeur de Gif PB

Message par kernadec »

Bjr blendman
OUI !! c'est à la même adresse il y a l'assembleur APNG
Mais pour gagner du temps voilà :http://apngasm.sourceforge.net/

Cordialement
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Decodeur de Gif PB

Message par Kwai chang caine »

Merci KERNADINOU 8)

Nadine boudin, tu ouvres ton magasin juste en face du miens...mais je prends quand même :lol:
On sait jamais :wink:

Bon avec ce format que je ne connaissais pas, cette fois notre FREDO il va falloir qu'il reflechisse une excuse en béton vibré, pour ne pas incorporer dans ses fonctions un ou deux des formats libre de droit d'images animées :mrgreen:
En plus si on peut les convertir facilement, je pourrais peut être passer par les ANPG pour afficher les GIFS, dans le cas ou il garderait sa frilosité envers les GIFS, et choisirait la concurence :D

Encore merci 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre