Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

gif-pygame

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gif-pygame

A pygame addon for animated image files

  • 1.1.2
  • PyPI
  • Socket score

Maintainers
1

gif_pygame

A pygame addon that allows you to load, animate, and render animated image files like .gif and .apng

How to use

# example code

import pygame, sys, gif_pygame

win = pygame.display.set_mode((512, 512))
example_gif = gif_pygame.load("example.gif") # Loads a .gif file
example_png = gif_pygame.load("example.png") # Loads a .png file, the module supports non-animated files, but it is not recommended

s1 = pygame.Surface((66, 66))
s2 = pygame.Surface((66, 66))
s3 = pygame.Surface((66, 66))
s1.fill((255, 0, 0))
s2.fill((0, 255, 0))
s3.fill((0, 0, 255))

example_surfs = gif_pygame.GIFPygame([(s1, 1), (s2, 1), (s3, 1)])

clock = pygame.Clock()

while True:
    clock.tick(60)
    win.fill((0, 0, 0))
    
    # There are 2 ways of rendering the animated img file, the first method is doing "gif.render(surface, (x, y))", the other method is doing "surface.blit(gif.blit_ready(), (x, y))". THE ".blit_ready()" FUNCTION MUST BE CALLED WHEN DOING THE SECOND METHOD
    example_gif.render(win, (128-example_gif.get_width()*0.5, 256-example_gif.get_height()*0.5))
    example_png.render(win, (256-example_png.get_width()*0.5, 256-example_png.get_height()*0.5))
    win.blit(example_surfs.blit_ready(), (384-example_surfs.get_width()*0.5, 256-example_surfs.get_height()*0.5))


    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit(); sys.exit()

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                if example_gif.paused: # Check whether `example_gif` is paused or not
                    example_gif.unpause() # unpauses `example_gif` if it was paused
                else:
                    example_gif.pause() # pauses `example_gif` if it was unpaused

                if example_png.paused: # Check whether `example_png` is paused or not, since this is a non-animated image, it will not be affected
                    example_png.unpause() # unpauses `example_png` if it was paused, since this is a non-animated image, it will not be affected
                else:
                    example_png.pause() # pauses `example_png` if it was unpaused, since this is a non-animated image, it will not be affected

                if example_surfs.paused: # Check whether `example_surfs` is paused or not
                    example_surfs.unpause() # unpauses `example_surfs` if it was paused
                else:
                    example_surfs.pause() # pauses `example_surfs` if it was unpaused
                    
    pygame.display.flip()

To recap:

gif_pygame.load loads in the image

To render the image you've got 2 options:

  • img.render(surf, (x, y))
  • surf.blit(img.blit_ready(), (x, y)) (.blit_ready() can be used to return the current frame's surface)

There are other extra functions. The ones showcased in the example code are img.pause() and img.unpause().

There are also:

  • GIFPygame().get_width(), returns the width of the image
  • GIFPygame().get_height(), returns the height of the image
  • GIFPygame().get_size(), returns the size of the image
  • GIFPygame().get_rect(), returns the rect of the image
  • GIFPygame().get_surfaces(), returns a list of all surfaces in the animation, you can also pass in certain indexes
  • GIFPygame().get_durations(), returns a list of all durations in the animation, you can also pass in certain indexes
  • GIFPygame().get_surfaces(), returns a list of all surfaces in the animation, you can also pass in certain indexes
  • GIFPygame().get_durations(), returns a list of all durations in the animation, you can also pass in certain indexes
  • GIFPygame().get_datas(), returns a list of all surfaces and durations in the animation, you can also pass in certain indexes
  • GIFPygame().get_alphas(), returns a list of that includes the alphas of all surfaces in the animation, you can also pass in certain indexes
  • gif_pygame.transform, a sublibrary for editing the surfaces.

Please use python's help() function for more in-depth explanation

(A documentation will be added soon)

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc