[5.60] Image Frame + gif

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

[5.60] Image Frame + gif

Message par falsam »

Cette nouvelle mouture (5.60) de PureBasic présente pas mal de nouveautés. Une de ces nouveauté et de pouvoir créer des images possédant plusieurs frames. Une seule est visible à un instant donné. Cela permet par exemple de créer des boutons avec RollOver ou une image animée avec cette exemple.

Code : Tout sélectionner

Enumeration Window
  #mainForm
EndEnumeration

Enumeration Gadget
  #image  
EndEnumeration

Global Image = CreateImage(#PB_Any, 100, 100, 24)
  
Declare Start()
Declare ChangeFrame()
Declare Exit()

Start()

Procedure Start()
  ;Creation de trois frames
  StartDrawing(ImageOutput(Image))
  Box(0, 0, 100, 100, RGB(255, 0, 0)) ;Red
  StopDrawing()
  
  AddImageFrame(Image)
  StartDrawing(ImageOutput(Image))
  Box(0, 0, 100, 100, RGB(0, 0, 255)) ;Blue
  StopDrawing()
  
  AddImageFrame(Image)
  StartDrawing(ImageOutput(Image))
  Box(0, 0, 100, 100, RGB(255, 215, 0)) ;Yellow
  StopDrawing()
  
  ;Affichage du nombre de frames : On a bien les 3 frames
  Debug "Image frame count " + ImageFrameCount(Image)

  ;Selection de la première frame
  SetImageFrame(Image, 0) 
  
  OpenWindow(#mainForm, 0, 0, 500, 300, "Image animée", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ImageGadget(#image, 10, 10, 0, 0, ImageID(Image))
  
  AddWindowTimer(#mainForm, 0, 1000)
  
  ;Triggers
  BindEvent(#PB_Event_CloseWindow, @Exit())
  BindEvent(#PB_Event_Timer, @ChangeFrame())
  
  Repeat : WaitWindowEvent() : ForEver
EndProcedure

Procedure ChangeFrame()
  Static Frame
  Frame +1 
  If Frame = 3
    Frame = 0
  EndIf
      
  SetImageFrame(Image, Frame) 
  SetGadgetState(#Image, ImageID(Image))
EndProcedure

Procedure Exit()  
  End
EndProcedure
Merci fred pour ces nouvelles fonctionnalités.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [5.60] Image Frame

Message par Ar-S »

La même chose avec du GIF :mrgreen: (mon gif préféré de tous les temps je crois :mrgreen:

Code : Tout sélectionner


Enumeration
  #WIN
  #GAD_IMAGE
  #T
  #IMAGEGIF
EndEnumeration

UseGIFImageDecoder()

Declare CatchImage_Net(Adr$)
Declare Count()
Declare ChangeFrame()
Declare exit()

Global Nbrframe

;LoadImage(#IMAGEGIF,"VOTREFICHIERGIF")
; OU BIEN
InitNetwork()
adr$ = "http://share.ldvmultimedia.com/boules.gif"
Image=CatchImage_Net(adr$)  ;Modifie cela par le chemin de ton image

If Image <> 0
  NbrFrame = ImageFrameCount(#IMAGEGIF)
Else
  Debug "erreur de chargement de l'image"
  End
EndIf

Procedure CatchImage_Net(Adr$)
  InitNetwork()
  Protected image
  ; By Ar-S 
  *Buffer = ReceiveHTTPMemory(Adr$)
  If *Buffer
    Image = CatchImage(#IMAGEGIF, *Buffer, MemorySize(*Buffer) )
    FreeMemory(*Buffer)
    ProcedureReturn Image
  Else
    ProcedureReturn #False   
  EndIf
EndProcedure
;;; End OR


Procedure Count()
  ProcedureReturn NbrFrame
EndProcedure


Procedure ChangeFrame()
  Static Frame
  Frame + 1
  If Frame = NbrFrame
    Frame = 0
  EndIf
  Debug "Frame : " + Frame
  ; Affichage
  SetImageFrame(#IMAGEGIF, Frame)
  SetGadgetState(#GAD_IMAGE, ImageID(#IMAGEGIF))
EndProcedure


Procedure exit()
  End
EndProcedure




If OpenWindow(#WIN, 0, 0, 150, 113, "Gif...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ImageGadget(#GAD_IMAGE,0,0,150,113,ImageID(#IMAGEGIF))
  AddWindowTimer(#WIN,3,80)
  
  BindEvent(#PB_Event_CloseWindow, @exit())
  BindEvent(#PB_Event_Timer, @ChangeFrame())
  
  Repeat : WaitWindowEvent() : ForEver
  
EndIf

~~~~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
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: [5.60] Image Frame + gif

Message par Micoute »

Merci a tous les deux pour le partage.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: [5.60] Image Frame + gif

Message par Kwai chang caine »

Image

Code : Tout sélectionner

UseGIFImageDecoder()
[/size]Wo putain c'est boooooooooonnn !!!!! 8)
Et c'est du plus de 10 ans d'âge .... :mrgreen:

Image

Merci les copains du partage 8)

Image
Et merci mon dieu

Image
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: [5.60] Image Frame + gif

Message par Zorro »

Code : Tout sélectionner


;Creation de trois frames
StartDrawing(ImageOutput(Image))
		Box(0, 0, 100, 100, RGB(255, 0, 0)) ;Red
StopDrawing()

AddImageFrame(Image)
StartDrawing(ImageOutput(Image))
		Box(0, 0, 100, 100, RGB(0, 0, 255)) ;Blue
StopDrawing()

AddImageFrame(Image)
StartDrawing(ImageOutput(Image))
		Box(0, 0, 100, 100, RGB(255, 215, 0)) ;Yellow
StopDrawing()
ben dis donc, j'espere qu'on peut faire :

Code : Tout sélectionner

;;;;

;Creation de trois frames
StartDrawing(ImageOutput(Image))
		Box(0, 0, 100, 100, RGB(255, 0, 0)) ;Red
		
		AddImageFrame(Image) 
		Box(0, 0, 100, 100, RGB(0, 0, 255)) ;Blue
		
		
		AddImageFrame(Image)
		Box(0, 0, 100, 100, RGB(255, 215, 0)) ;Yellow
StopDrawing()
???
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [5.60] Image Frame + gif

Message par Ar-S »

Dans la synthaxe je ne vois pas le probleme et il ni a pas d'erreur à la compilation. En revanche la frame rouge n'apparaît pas. Pourtant elle est bien décompté. Il y a un petit hic.
~~~~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
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [5.60] Image Frame + gif

Message par Ar-S »

J'ai 2 soucis concernant le GIF

Le 1er est que le passage d'une frame à une autre superpose les image sur un gif transparent. Je ne trouve pas ça jusdicieux. Il faudrait que le gadget se reset entre chaque frame.

Second soucis, si je remplace l'imagegadget par un canvas mon gif n'apparait plus. (dé-commenter ce qui touche au canvas gadget et commenter ce qui touche à l'imagegadget)

l'image est récupérable ici : https://s-media-cache-ak0.pinimg.com/or ... 70d29b.jpg mais elle se charge automatiquement au lancement du programme.

Code : Tout sélectionner


Enumeration
  #WIN
  #GAD_IMAGE
  #T
  #IMAGEGIF
EndEnumeration

UseGIFImageDecoder()

Declare CatchImage_Net(Adr$)
Declare Count()
Declare ChangeFrame()
Declare exit()

Global Nbrframe

;LoadImage(#IMAGEGIF,"VOTREFICHIERGIF")
; OU BIEN
InitNetwork()
adr$ = "http://share.ldvmultimedia.com/run01.gif" ; 256x256
Image=CatchImage_Net(adr$)  ;Modifie cela par le chemin de ton image

If Image <> 0
  NbrFrame = ImageFrameCount(#IMAGEGIF)
  Debug " l'image contient " + Str(Nbrframe)  + " frames"
Else
  Debug "erreur de chargement de l'image"
  End
EndIf

Procedure CatchImage_Net(Adr$)
  InitNetwork()
  Protected image
  ; By Ar-S 
  *Buffer = ReceiveHTTPMemory(Adr$)
  If *Buffer
    Image = CatchImage(#IMAGEGIF, *Buffer, MemorySize(*Buffer) )
    FreeMemory(*Buffer)
    ProcedureReturn Image
  Else
    ProcedureReturn #False   
  EndIf
EndProcedure
;;; Endou


Procedure Count()
  ProcedureReturn NbrFrame
EndProcedure


Procedure ChangeFrame()

  Static Frame, POS
  Frame + 1

  If Frame = NbrFrame
    Frame = 0
  EndIf
  POS+4
  If POS >= 256
    POS = 0
  EndIf
  
  Debug "Frame : " + Frame
  Debug "POS " + POS
  ; Affichage
  
  SetImageFrame(#IMAGEGIF, Frame)
; FOR CANVAS GADGET
;   StartDrawing(CanvasOutput(#GAD_IMAGE))
;     DrawImage(ImageID(#IMAGEGIF), POS, #PB_Ignore, #PB_Ignore, #PB_Ignore)
;   StopDrawing()
  
  ; For Image Gadget
   SetGadgetState(#GAD_IMAGE,ImageID(#IMAGEGIF))
  
  
  
EndProcedure


Procedure exit()
  End
EndProcedure




If OpenWindow(#WIN, 0, 0, 512, 256, "Gif...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ;   CanvasGadget(#GAD_IMAGE,0,0,512,256)
  ImageGadget(#GAD_IMAGE,0,0,512,256,ImageID(#IMAGEGIF))
  
  AddWindowTimer(#WIN,3,80)
  
  BindEvent(#PB_Event_CloseWindow, @exit())
  BindEvent(#PB_Event_Timer, @ChangeFrame())
  
  
  Repeat : WaitWindowEvent() : ForEver
  
EndIf

~~~~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
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [5.60] Image Frame + gif

Message par falsam »

Effectivement la gestion de la transparence des gifs n'est pas pris en compte lors de l'affichage dans un ImageGadget() ou un CanvasGadget(). Embétant.
Pour le moment ça implique de prendre des gifs avec fonds non transparents.

Pour ton soucis de canvas

Code : Tout sélectionner

DrawImage(ImageID(#IMAGEGIF), POS, #PB_Ignore, #PB_Ignore, #PB_Ignore)
tu cherches à afficher une image en y = #PB_Ignore (-65535). Supprime aussi les deux derniers #PB_Ignore qui indique une taille d'affichage (-65535 x -65535)

Ta procédure ChangeFrame() tel qu'elle fonctionne chez moi.

Code : Tout sélectionner

Procedure ChangeFrame()
  Static Frame, POS
  
  SetImageFrame(#IMAGEGIF, Frame)
  Frame + 1
  
  If Frame = NbrFrame
    Frame = 0
  EndIf
  POS+4
  If POS >= 256
    POS = 0
  EndIf
  
  ; Affichage  
  StartDrawing(CanvasOutput(#GAD_IMAGE))
  Box(0, 0, 512, 256, RGBA(255, 255, 255, 255))
  DrawImage(ImageID(#IMAGEGIF), POS, 0)
  StopDrawing()
EndProcedure
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: [5.60] Image Frame + gif

Message par Kwai chang caine »

Effectivement la gestion de la transparence des gifs n'est pas pris en compte lors de l'affichage dans un ImageGadget() ou un CanvasGadget(). Embétant.
Vous répondez à ma question 8)
Je m'étais aperçu de ça en essayant avec ma Yenne
Image
J'espère que FRED pourra faire quelque chose, mais c'est pas sûr, comme il utilise la LIB d'un autre :|
C'est embêtant comme dit FALSAM les GIF transparents sont quand même une grande partie des GIF d'internet 8O
Le GIF est un format super compliqué, surtout les animés
Et y'a beaucoup de problèmes avec, parfois ils sont mal fait, en tout cas pas dans les règles de l'art ce qui donne un résultat inattendu, ça m'est arrivé très souvent :cry:
C'est surement une des raisons qui avait freiné FRED pour les inclure dans PB
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [5.60] Image Frame + gif

Message par Ar-S »

Je vais le poster dans la section bug UK

EDIT :

J'ai essayé de ruser en éditant le gif via PB et en insérant une image noire entre chaque frames mais rien ni fait :

Code : Tout sélectionner


Enumeration
  #WIN
  #GAD_IMAGE
  #T
  #IMAGEGIF
  #IMtampon
  #NEWGIF
EndEnumeration

UseGIFImageDecoder()

Declare CatchImage_Net(Adr$)
Declare Count()
Declare ChangeFrame()
Declare exit()
Declare ImageTampon(imagetp,couleur)
Declare InsertImageTP()

Global Nbrframe, iW, iH

;LoadImage(#IMAGEGIF,"VOTREFICHIERGIF")
; OU BIEN
InitNetwork()
adr$ = "http://share.ldvmultimedia.com/run01.gif" ; 256x256
Image=CatchImage_Net(adr$)  ;Modifie cela par le chemin de ton image

If Image <> 0
  NbrFrame = ImageFrameCount(#IMAGEGIF)
  Debug " l'image contient " + Str(Nbrframe)  + " frames"
  
  ImageTampon(#IMtampon,$0)
  InsertImageTP()
  
  NbrFrame = ImageFrameCount(#NEWGIF)
  
Else
  Debug "erreur de chargement de l'image"
  End
EndIf


Procedure ImageTampon(imagetp,couleur)
  
  iW = ImageWidth(#IMAGEGIF)
  iH = ImageHeight(#IMAGEGIF)
  
  CreateImage(imagetp, iW, iH, 24, couleur)
  
EndProcedure


Procedure InsertImageTP()
  
  CreateImage(#NEWGIF,iW,iH,24,BGcolor)
  
  For i = 0 To Nbrframe-1
  
    StartDrawing(ImageOutput(#NEWGIF))
    SetImageFrame(#IMAGEGIF,i)
    AddImageFrame(#NEWGIF)
    DrawImage(ImageID(#IMAGEGIF),0,0,iW,iH)
    StopDrawing()
    
    StartDrawing(ImageOutput(#NEWGIF))  
    AddImageFrame(#NEWGIF)
    DrawImage(ImageID(#IMtampon),0,0,iW,iH)
    StopDrawing()

  Next
EndProcedure



Procedure CatchImage_Net(Adr$)
  InitNetwork()
  Protected image
  ; By Ar-S 
  *Buffer = ReceiveHTTPMemory(Adr$)
  If *Buffer
    Image = CatchImage(#IMAGEGIF, *Buffer, MemorySize(*Buffer) )
    FreeMemory(*Buffer)
    ProcedureReturn Image
  Else
    ProcedureReturn #False   
  EndIf
EndProcedure
;;; Endou


Procedure Count()
  ProcedureReturn NbrFrame
EndProcedure


Procedure ChangeFrame()

  Static Frame, POS
  Frame + 1

  If Frame = NbrFrame
    Frame = 0
  EndIf
  POS+4
  If POS >= 256
    POS = 0
  EndIf
  
  Debug "Frame : " + Frame
  Debug "POS " + POS
  ; Affichage
  
;   SetImageFrame(#IMAGEGIF, Frame)
  SetImageFrame(#NEWGIF, Frame)
  ; FOR CANVAS GADGET
  
  StartDrawing(CanvasOutput(#GAD_IMAGE))
;    Box(POS,0,512,256,$FFFFFF)  
  ;DrawImage(ImageID(#IMAGEGIF), POS, 0)
  DrawImage(ImageID(#NEWGIF), POS, 0)
  StopDrawing()

  
  
  ; For Image Gadget
;   SetGadgetState(#GAD_IMAGE,ImageID(#IMAGEGIF))  
  SetGadgetState(#GAD_IMAGE,ImageID(#NEWGIF))  
  
EndProcedure


Procedure exit()
  End
EndProcedure




If OpenWindow(#WIN, 0, 0, 512, 256, "Gif...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ; If Using Canvas
  CanvasGadget(#GAD_IMAGE,0,0,512,256)
  
  ; If using imagegadget
  ;ImageGadget(#GAD_IMAGE,0,0,512,256,ImageID(#IMAGEGIF))
  
  AddWindowTimer(#WIN,3,80)
  
  BindEvent(#PB_Event_CloseWindow, @exit())
  BindEvent(#PB_Event_Timer, @ChangeFrame())
  
  
  Repeat : WaitWindowEvent() : ForEver
  
EndIf

~~~~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
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: [5.60] Image Frame + gif

Message par Zorro »

Code : Tout sélectionner

Procedure InsertImageTP()
  
  CreateImage(#NEWGIF,iW,iH,24,BGcolor)
  
  For i = 0 To Nbrframe-1
  
    StartDrawing(ImageOutput(#NEWGIF))
    SetImageFrame(#IMAGEGIF,i)
    AddImageFrame(#NEWGIF)
    DrawImage(ImageID(#IMAGEGIF),0,0,iW,iH)
    StopDrawing()
    
    StartDrawing(ImageOutput(#NEWGIF))  
    AddImageFrame(#NEWGIF)
    DrawImage(ImageID(#IMtampon),0,0,iW,iH)
    StopDrawing()

  Next
EndProcedure
ben dis donc, j'espere qu'on peut faire :

Code : Tout sélectionner

Procedure InsertImageTP()
  
  CreateImage(#NEWGIF,iW,iH,24,BGcolor)
  
  For i = 0 To Nbrframe-1
  
    StartDrawing(ImageOutput(#NEWGIF))
    SetImageFrame(#IMAGEGIF,i)
    AddImageFrame(#NEWGIF)
    DrawImage(ImageID(#IMAGEGIF),0,0,iW,iH)
   ;;;;;;; StopDrawing()                                      <<<<<<<<<<< pourquoi devoir faire 2 fois le meme StartDrawing ?????????
    
   ;;;;;;;;;;; StartDrawing(ImageOutput(#NEWGIF))   <<<<<<<<<<< pourquoi devoir faire 2 fois le meme StartDrawing ????????? (deja que c'est dans une boucle.... )
    AddImageFrame(#NEWGIF)
    DrawImage(ImageID(#IMtampon),0,0,iW,iH)
    StopDrawing()

  Next
EndProcedure

dans le cadre d'une boucle les fonctions StartDrawing-StopDrawing sont un fort ralentissement !!

en general on cherche a les metres en dehors de la boucle genre :

StartDrawing()
For
xxxx
xxxx
Next
StopDrawing()

si tu met ces fonctions dans la boucle, c'est plus lent ! (mais quelques fois on a pas le choix) cependant ...:

si en plus tu ajoutes en doublant ses fonctions alors qu'il s'agit d'ecrire au meme endroit , alors là, c'est du vice !! :lol:
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [5.60] Image Frame + gif

Message par Ar-S »

Je t'avais répondu lors de ta précédente remarque.
Dans la synthaxe je ne vois pas le probleme et il ni a pas d'erreur à la compilation. En revanche la frame rouge n'apparaît pas. Pourtant elle est bien décompté. Il y a un petit hic.
~~~~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
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: [5.60] Image Frame + gif

Message par Zorro »

ben oui, c'est forcement un bug de la lib
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [5.60] Image Frame + gif

Message par Ar-S »

Je l'ai signalé.
~~~~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
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: [5.60] Image Frame + gif

Message par falsam »

A la question pourquoi un StartDrawing() ... StopDrawing() à chaque fois qu'on souhaite insérer une nouvelle frame avec la fonction AddImageFrame(), la réponse est apportée par Fred.

Si vous devez ajouter une nouvelle frame, donc une nouvelle image, alors tout comme la création d'image classique, vous devez commencer par StartDrawing(). Ce n'est pas un bug.
Fred a écrit :This is the way it is done for now, it's not a bug. If you want to add a frame, you create a new image and you need to change the drawing area for StartingDrawin().
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre