Page 1 sur 1

Image multi frame

Publié : lun. 20/août/2018 0:54
par Ekim
Bonsoir,
pouvez-vous me dire sur quel format doit on enregistrer une image multi framée fraichement crée pour ainsi pouvoir la ré ouvrir un peu plus tard et ré exploiter ses frames?

Re: Image multi frame

Publié : lun. 20/août/2018 6:27
par Marc56
Ekim a écrit :Bonsoir,
pouvez-vous me dire sur quel format doit on enregistrer une image multi framée fraichement crée pour ainsi pouvoir la ré ouvrir un peu plus tard et ré exploiter ses frames?
Le format GIF est multi-frame.
On peut le lire en PB depuis la version 5.6
Mais on ne peut pas l'écrire.
Donc en PB, tu dois pour l'instant sauver un fichier par frame.

:wink:

Re: Image multi frame

Publié : lun. 20/août/2018 8:09
par Ar-S
C'est bien résumé.
Crees toi un sous dossier datas dans l'emplacement de ton soft ou tu mets des images 1,2,3,n
C'est ton code qui pourra créer l'image animé, pas le format de l'image.

Re: Image multi frame

Publié : mar. 21/août/2018 12:48
par G-Rom
Bonjour, tu peu d'inspiré de l'opensource & convertir du code C en PB qui sauvegarde des gifs.
https://github.com/lecram/gifenc
Je l'utilise, ca marche très bien. le code est facile à convertir.

Re: Image multi frame

Publié : sam. 15/sept./2018 2:03
par Ekim
Ok merci pour vos réponse)

dans ce genre de situation il est tout à fait possible de créer son propre format puisqu'il n'y a pas vraiment le choix!

Re: Image multi frame

Publié : sam. 15/sept./2018 14:30
par Marc56
Tu peux créer une bande d'images. (Grande image, puis DrawImage avec un décalage)
Ensuite tu les extrait avec GrabImage()
:)

Re: Image multi frame

Publié : sam. 15/sept./2018 18:08
par Ekim
Excellente l'idée @Marc56)))

En fait, tu veux dire que dans un 1er temps, il faut charger toutes les images d'un sous-dossier en mémoire puis les rassembler sur une seule grande image, puis ensuite les faire défiler?

Re: Image multi frame

Publié : sam. 15/sept./2018 22:41
par Ar-S
C'est une solution.
Ici une image reprenant 2 frames. (1 verte et 1 rouge)

Code : Tout sélectionner


; Creation de l'image test
CreateImage(10,200,50,32,#Green)
StartDrawing(ImageOutput(10))
  Box(0,0,100,50,#Red)
StopDrawing()



If OpenWindow(0, 0, 0, 426, 128, "GrabImage", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ImageGadget(0, 0, 0, 128, 128, ImageID(10) )
    ButtonGadget(1, 138, 50, 200, 50, "Clic pour Frame 1")
    ImageGadget(2, 298, 0, 128, 128, 0)
    
     Xim = 100
    Repeat
      Event = WaitWindowEvent()          
      If Event = #PB_Event_Gadget  
        Select EventGadget()
           
          Case 1 
            GrabImage(10, 11, Xim, 0, 100, 50); Coupe l'image
            SetGadgetState(2, ImageID(11))    ; Affichage ID 11 qui prendra la partie rouge ou verte selon la position Xim
            
            If Xim = 100 
              SetGadgetText(1,"Clic pour Frame 2")
              Xim = 0 
            Else
              Xim = 100 
              SetGadgetText(1,"Clic pour Frame 1")
            EndIf
          
        EndSelect
      EndIf
    Until Event = #PB_Event_CloseWindow
  EndIf

Tu peux utiliser ce que l'on appel des SpriteSheets Image
Source sympa ici : https://www.codeandweb.com/texturepacke ... rite-sheet

Re: Image multi frame

Publié : mar. 25/sept./2018 0:49
par Ekim
Impeccable @Ar-S merci pour ton dévouement :wink: