IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

Intégrer animations.gif python


Sujet :

Bibliothèques tierces Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 5
    Par défaut Intégrer animations.gif python
    Bonjour,

    Je suis actuellement sur un projet de programmation pour mon bac. Je tente de reprendre dans ce jeu le principe d'Alchemy (http://littlealchemy.com) dans une petite interface 2D codée avec la bibliothèque Pygame de Python.

    J'ai déjà bien avancé et j'aimerai maintenant attaquer la déco Je souhaiterai pouvoir intégrer des animation gif dans certaines zones de mon interface.
    Les tutos ne fusent pas sur internet et je n'ai pas suffisament de temps et de maîtrise pour retranscrire mon code en java ou autre langage ...
    J'implore donc l'aide de quelqu'un qui maîtrise bien python.

    Si vous avez une solution, une démarche à me proposer pour pouvoir intégrer ce genre d'images : http://www.cellphonehits.net/site/up...d-electric.gif
    à ce genre de programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    import pygame as pg
    import sys
    import itertools
     
    ELE_LIST = ["feu","eau",]
     
    TRANS_DICT = {("feu" ,"eau")   : "vapeur",
                  ("vapeur" ,"eau") : "alcool",
                  ("alcool","feu") : "molotov"}
     
     
    class Dragable(object):
     
        def __init__(self,kind,location):
     
            self.kind = kind
            self.img = self.get_img()
            self.rect = self.img.get_rect(center=location)
            self.selected = False
        def get_img(self):
     
            return pg.image.load(self.kind+"-icon.png").convert_alpha()
     
        def events(self,ev):
            if ev.type == pg.MOUSEBUTTONDOWN and self.rect.collidepoint(ev.pos):
                if ev.button == 1:
                    self.selected = True
     
            elif ev.type == pg.MOUSEBUTTONUP:
                if ev.button == 1:
                    self.selected = False
     
        def update(self,Surf):
            if self.selected:
                self.rect.center = pg.mouse.get_pos()
            Surf.blit(self.img,self.rect)
     
     
     
    class Control(object):
     
        def __init__(self):
            pg.init()
            self.Screen = pg.display.set_mode((1250,850))
            self.bg = pg.image.load("interface.iter.jaune.png").convert()
            self.elements = [Dragable(name,(1150,350+90*i)) for i,name in enumerate(ELE_LIST*2)]
            self.done = False
     
        def event_loop(self):
            for ev in pg.event.get():
                if ev.type==pg.QUIT or (ev.type==pg.KEYDOWN and ev.key==pg.K_ESCAPE):
                    self.done = True
     
                for Ele in self.elements:
                    Ele.events(ev)
     
        def update(self):
            self.Screen.fill(0)
            self.Screen.blit(self.bg,(0,0))
            [Ele.update(self.Screen) for Ele in self.elements if not Ele.selected]
            [Ele.update(self.Screen) for Ele in self.elements if Ele.selected]
     
        def alchemize(self):
            for Eles in itertools.permutations(self.elements,2):
                if not Eles[0].selected and not Eles[1].selected:
                    if Eles[0].rect.colliderect(Eles[1]):
                        self.elements.remove(Eles[0])
                        key = Eles[0].kind,Eles[1].kind
                        if key[0] != key[1]:
                            if key not in TRANS_DICT:
                                key = key[::-1]
                            Eles[1].kind = TRANS_DICT[key]
                            Eles[1].img = Eles[1].get_img()
                        break
     
        def main(self):
            while not self.done:
                self.event_loop()
                self.alchemize()
                self.update()
                pg.display.update()
     
     
    if __name__ == "__main__":
     
        RunIt = Control()
        RunIt.main()
        pg.quit();sys.exit()
    Merci énormément !
    Ci joint les images nécéssaires pour faire tourner le programme :











  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 9
    Par défaut
    je ne suis pas certain que python anime les gif
    j avais regardé il y a quelques temps la version 2.5, il me semble qu'elle ne supporte (par defaut) que le Gif87a
    pour des animations il faut utiliser le Gif89a

    a voir sur les version 2.7 et 3.x...

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 670
    Par défaut
    Salut,
    La question n'est pas sur Python: il sait lire un fichier...
    Mais la capacité de Pygame à afficher du GIF animé.
    A priori, pygame ne sait pas faire.

    Pour s'en sortir, on peut découper le GIF animé avec PIL et organiser l'affichage de la séquence d'images avec Pygame - c'est ici qu'intervient le format des images GIF supportées par PIL -.
    Voir ici pour comment utiliser PIL pour découper/packager du GIF.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Java intégrer image animée gif
    Par Ultras dans le forum Langage
    Réponses: 29
    Dernier message: 03/04/2014, 16h44
  2. Intégrer un GIF animé dans un GUI
    Par latitude5 dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 31/07/2009, 11h44
  3. Intégrer un script python dans une page Web
    Par Mysti¢ dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 02/11/2006, 10h20
  4. Réponses: 6
    Dernier message: 15/08/2006, 20h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo