PureBasic
;
; ------------------------------------------------------------
;
;   PureBasic - ImagePlugin GIF Viewer example file
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;

; Включаем GIF декодер
UseGIFImageDecoder()

; Загружаем GIF файл
If LoadImage(0, #PB_Compiler_Home+"Examples/Sources/Data/PureBasicLogo.gif")

  OpenWindow(0, 100, 100, ImageWidth(0), ImageHeight(0), "GIF просмотрщик")
 
  CanvasGadget(0, 0, 0, ImageWidth(0), ImageHeight(0))
  
  ; Добавить таймер для анимации GIF, сразу начинает отображать первый кадр без задержки
  AddWindowTimer(0, 0, 1) 
 
  Repeat
    Event = WaitWindowEvent()
   
    If Event = #PB_Event_Timer
      SetImageFrame(0, Frame)
     
      ; Каждый кадр GIF может иметь свою собственную задержку, поэтому измените таймер соответственно
      ;
      RemoveWindowTimer(0, 0)
      AddWindowTimer(0, 0, GetImageFrameDelay(0))
     
      If StartDrawing(CanvasOutput(0))
        DrawImage(ImageID(0), 0, 0)
        StopDrawing()
      EndIf
      
      ;Переход к следующему кадру
      Frame+1
      If Frame >= ImageFrameCount(0) ; Переход к первому кадру для воспроизведения в цикле
        Frame = 0
      EndIf
    EndIf
   
  Until Event = #PB_Event_CloseWindow
Else
  Debug "Невозможно загрузить файл: " + Filename$
EndIf