
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
A pygame addon that allows you to load, animate, and render animated image files like .gif and .apng
# 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 imageGIFPygame().get_height()
, returns the height of the imageGIFPygame().get_size()
, returns the size of the imageGIFPygame().get_rect()
, returns the rect of the imageGIFPygame().get_surfaces()
, returns a list of all surfaces in the animation, you can also pass in certain indexesGIFPygame().get_durations()
, returns a list of all durations in the animation, you can also pass in certain indexesGIFPygame().get_surfaces()
, returns a list of all surfaces in the animation, you can also pass in certain indexesGIFPygame().get_durations()
, returns a list of all durations in the animation, you can also pass in certain indexesGIFPygame().get_datas()
, returns a list of all surfaces and durations in the animation, you can also pass in certain indexesGIFPygame().get_alphas()
, returns a list of that includes the alphas of all surfaces in the animation, you can also pass in certain indexesgif_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)
FAQs
A pygame addon for animated image files
We found that gif-pygame demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.