gif_pygame
A pygame addon that allows you to load, animate, and render animated image files like .gif and .apng
How to use
import pygame, sys, gif_pygame
win = pygame.display.set_mode((512, 512))
example_gif = gif_pygame.load("example.gif")
example_png = gif_pygame.load("example.png")
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))
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:
example_gif.unpause()
else:
example_gif.pause()
if example_png.paused:
example_png.unpause()
else:
example_png.pause()
if example_surfs.paused:
example_surfs.unpause()
else:
example_surfs.pause()
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)