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 :

Image full screen


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    apprenti ;-)
    Inscrit en
    Octobre 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : apprenti ;-)

    Informations forums :
    Inscription : Octobre 2016
    Messages : 39
    Points : 17
    Points
    17
    Par défaut Image full screen
    Bonjour à tous,

    Voilà je débute sous python et je suis entrain de regarder un peu comment fonctionne tkinter.

    Donc j'ai trouvé tout un tas de tutos pour afficher des widgets images etc...

    J'ai juste un truc sur lequel je but .

    J'ai créé une fenetre avec a l'interieur un canvas qui s'affiche en plein écran.Jusque là, ça fonctionne.

    Cependant j'aimerai mettre a l'interieur de celui-ci une image qui prend toute la place possible dans le canvas.

    Voici ou j'en suis:
    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
     
    # coding: utf-8
     
    from tkinter import *
    #creation d'une fenetre et la stocker dans la variable fenetre
    fenetre = Tk()
    #sert a ne pas avoir la bande noir en haut et en bas de la page en fullscreen
    fenetre.attributes('-fullscreen',True )
     
    w, h = fenetre.winfo_screenwidth(), fenetre.winfo_screenheight()
    photo = PhotoImage(file="back.gif",width=w, height=h)
     
                          # pour que le canvas n'ai pas de bourdure qui reste autour
    can = Canvas( fenetre,highlightthickness=0)
    can.create_image(0, 0, anchor=NW, image=photo)
     
    can.pack( fill='both',expand=1 )
     
     
    Button(can, text="Quitter", command=fenetre.destroy).pack()
    fenetre.mainloop()
    J'ai donc tenté de récupérer la taille de mon écran pour la passer en paramètre à l'image mais cela ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    w, h = fenetre.winfo_screenwidth(), fenetre.winfo_screenheight()
    photo = PhotoImage(file="back.gif",width=w, height=h)

    J'arrive bien a afficher mon image plus grande ou plus petite en changeant la taille de celle-ci mais si l’écran d'affichage n'est pas toujours le même , cela va poser problème...

    Merci a vous

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Salut,
    Citation Envoyé par none61 Voir le message
    J'arrive bien a afficher mon image plus grande ou plus petite en changeant la taille de celle-ci mais si l’écran d'affichage n'est pas toujours le même , cela va poser problème...
    A priori, la taille de l'écran ne va pas changer pendant la vie du programme.
    Une fois récupérée et vos images redimensionnées, si l'utilisateur change la résolution de l'écran... il devra redémarrer le programme.
    Après vous pouvez lui permettre de redimensionner la fenêtre (ce qui n'a rien à voir avec l'écran ou sa résolution) et vous pouvez alors garder les mêmes images et ajouter des Scrollbar ou les redimensionner.


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

  3. #3
    Membre à l'essai
    Homme Profil pro
    apprenti ;-)
    Inscrit en
    Octobre 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : apprenti ;-)

    Informations forums :
    Inscription : Octobre 2016
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    wiztricks merci d'avoir pris du temps pour me répondre,

    Oui une fois l'appli terminée il y a de fortes chances pour que l’écran une fois installé ne change pas (quoi que..j’essaie de faire un photobooth et il y aura surement des évolutions ;-) )

    Actuellement je fais mes essais sur un mac et sur un Pc windows. A terme, l'application sera sur un raspberry avec sans doute un écran 22pouces...

    Comme je l'ai mentionné dans mon précédent message, j'arrive à modifier la taille de l'image MAIS comment savoir quelle taille elle doit faire pour remplir totalement mon écran?

    Si j'ai bien compris, une fois cette taille définie, peut importe la résolution de l'écran choisi, en redémarrant l'appli, l'image fera toujours la taille totale de l'écran?

    Je m'y perd un peut entre taille d’écran et résolution...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par none61 Voir le message
    Je m'y perd un peut entre taille d’écran et résolution...
    La taille de l'écran est la longueur de sa diagonale exprimée en "inch" que vous pouvez convertir en centimètres et déduire hauteur et largueur.
    La résolution est un nombre de pixels par unités de longueur.

    Comme vous partez d'une image avec MxN pixels à redimensionner à la taille de... que vous récupérez en pixels pour passer ces nombres de pixels à la fonction qui va redimensionner l'image... La résolution importe peu.

    Là où vous devez faire attention, c'est sur le redimensionnement de l'image: je ne suis pas sûr que çà fonctionne sans passer par PIL et Image.resize.
    Puis imaginez une image 100x100 contenant un cercle que vous redimensionnez en 100x200. Vous allez déformer votre cercle et afficher une ellipse.

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

  5. #5
    Membre à l'essai
    Homme Profil pro
    apprenti ;-)
    Inscrit en
    Octobre 2016
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : apprenti ;-)

    Informations forums :
    Inscription : Octobre 2016
    Messages : 39
    Points : 17
    Points
    17
    Par défaut
    wiztricks merci pour ta réponse j'ai également reçu un petit coup de pousse en MP avec ce code qui a l'aire de faire exactement ce que je veux.


    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
     
     
    from tkinter import Tk, Button, Canvas, PhotoImage
    from PIL import Image, ImageTk
     
    fenetre = Tk()
     
    # sert a ne pas avoir la bande noir en haut et en bas de la page en fullscreen
    fenetre.attributes('-fullscreen', True)
     
    w, h = fenetre.winfo_screenwidth(), fenetre.winfo_screenheight()
     
    image = Image.open("Tests/images/imageTest.png") # imageTest fait 270 x 200
     
    image = image.resize((w, h))
     
    # print(image) # <PIL.Image.Image image mode=RGBA size=1920x1080 at 0x43D5AB0>
     
    photo = ImageTk.PhotoImage(image)
     
    # pour que le canvas n'ai pas de bourdure qui reste autour
    can = Canvas(fenetre, highlightthickness=0)
     
    can.create_image(0, 0, anchor='nw', image=photo)
     
    can.pack(fill='both', expand=1)
     
    Button(can, text="Quitter", command=fenetre.destroy).pack()
     
    fenetre.mainloop()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Bootstrap] navbar + image full screen
    Par rockley dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 13/03/2016, 22h26
  2. Full screen direct
    Par sterzock dans le forum VBA Word
    Réponses: 9
    Dernier message: 17/06/2008, 13h41
  3. Fenetre PopUp en full screen
    Par namstou3 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 19/10/2007, 14h22
  4. Probleme d'affichage en mode Full Screen
    Par Nizarazu9 dans le forum Java ME
    Réponses: 1
    Dernier message: 10/09/2007, 23h02
  5. Passer mon site en "full-screen"
    Par krolineeee dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 24/05/2006, 16h38

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