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

Tkinter Python Discussion :

lancer une fonction depuis un bouton


Sujet :

Tkinter Python

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut lancer une fonction depuis un bouton
    j'utilise le programme suivant pour transformer une série d'image en vidéo.
    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
     
     
    import sys, os, glob, Image, time
    import pymedia.video.vcodec as vcodec
     
    def files2Video(files, outFile='out.mpg', outCodec='mpeg1video'):
      s= Image.open(files[0])
      if outCodec== 'mpeg1video': bitrate= 2700000
      else:                       bitrate= 9800000
      params= { 'type': 0, 'gop_size': 12, 'frame_rate_base': 1025, 
    'max_b_frames': 0,
                'width': s.size[0], 'height': s.size[1], 'frame_rate': 2997,
                'deinterlace': 0,'bitrate': bitrate, 'id': 
    vcodec.getCodecID(outCodec)
              }
      e= vcodec.Encoder(params)
     
      fw= open(outFile, 'wb')
      print files
      os.system("pause")
     
      for ActPic in files:
        s= Image.open(ActPic)
        ss= s.tostring()
        bmpFrame= vcodec.VFrame(vcodec.formats.PIX_FMT_RGB24, s.size, 
    (ss,None,None))
        yuvFrame= bmpFrame.convert(vcodec.formats.PIX_FMT_YUV420P)
        d= e.encode(yuvFrame)
        fw.write(d.data)
      fw.close()
     
    if __name__== '__main__':
        files = glob.glob(r'.\test\*.jpg')
    	#print files
     
        files.sort(key=lambda f:(os.stat(f).st_mtime, f))
        files2Video(files, time.strftime('Cam1_%Y%m%d%H%M.mpg', 
    time.localtime()))
    Je souhaiterais l'intéger dans un programme plus complet avec une interface avec un bouton pour lancer la création de la vidéo.

    J'ai testé ceci qui ne marche pas :
    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
     
     
    from Tkinter import *
    import sys, os, glob, Image, time, os.path
    import pymedia.video.vcodec as vcodec
     
    root=Tk()
     
    root.geometry('650x300+100+150')
    bou1=Button(root, text ="creer la vidéo", command = lambda :test(4,5)) 
    bou1.place(relx=0.20, rely=0.25, anchor=CENTER)
     
    def test(vitesse, dossier):
         files = glob.glob(r'.\test\*.jpg')
     
        files.sort(key=lambda f:(os.stat(f).st_mtime, f))
        files2Video(files, time.strftime('Cam1_%Y%m%d%H%M.mpg', 
        time.localtime()))
    def files2Video(files, outFile='out.mpg', outCodec='mpeg1video'):
      s= Image.open(files[0])
      if outCodec== 'mpeg1video': bitrate= 2700000
      else:                       bitrate= 9800000
      params= { 'type': 0, 'gop_size': 12, 'frame_rate_base': 1025, 
    'max_b_frames': 0,
                'width': s.size[0], 'height': s.size[1], 'frame_rate': 2997,
                'deinterlace': 0,'bitrate': bitrate, 'id': 
    vcodec.getCodecID(outCodec)
              }
      e= vcodec.Encoder(params)
     
      fw= open(outFile, 'wb')
      print files
      os.system("pause")
     
      for ActPic in files:
        s= Image.open(ActPic)
        ss= s.tostring()
        bmpFrame= vcodec.VFrame(vcodec.formats.PIX_FMT_RGB24, s.size, 
    (ss,None,None))
        yuvFrame= bmpFrame.convert(vcodec.formats.PIX_FMT_YUV420P)
        d= e.encode(yuvFrame)
        fw.write(d.data)
      fw.close()
     
    root.mainloop()
    quelqu'un a-il une solution
    merci
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. lancer une fonction MATLAB depuis un code Java
    Par Gouasmi_moh dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 23/04/2011, 18h00
  2. Réponses: 3
    Dernier message: 20/07/2009, 11h58
  3. Réponses: 5
    Dernier message: 03/07/2008, 16h14
  4. Lancer une fonction locale depuis une page Web
    Par francoisch dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 30/10/2007, 22h30
  5. Réponses: 2
    Dernier message: 05/10/2007, 14h31

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