Partage
  • Partager sur Facebook
  • Partager sur Twitter

Affichage en plein écran

afficher du texte par dessus une application en plein écran

    5 avril 2020 à 14:39:09

    Pendant que je joue à un jeu en plein écran, j'aimerais bien afficher des informations provenant d'un programme python par dessus le jeu. A un endroit précis dans l'écran.

    Comme pour rajouter du HUD.

    Les informations à afficher sont sous forme de texte et de chiffres qui se mettent à jour continuellement.

    Voici mon code pour l'instant, il ne fait que de trouver du texte dans l'écran pour l'instant :

    import pytesseract
    from PIL import ImageGrab
    from PIL import Image
    import time
    
    
    while(1):
        box = (0, 0, 1920, 1080) #taille de l'écran
        im = ImageGrab.grab(box) #capture d'écran
        area = (1278, 442, 1329, 458) #zone où sont inscrites les données à récupérer
        cropped_img = im.crop(area) #rognage de la capture
        pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files (x86)\Tesseract-OCR\tesseract.exe" #pour fixer un bug de chemin de pytesseract 
        sortie = pytesseract.image_to_string(cropped_img, lang='eng', config="--oem 0 -c tessedit_char_whitelist=%.1234567890") #pour trouver le texte dans l'image, le texte contient uniquement des chiffres et . et %
        print(sortie) #un affichage en console pour l'instant
        time.sleep(0.5) #pour ralentir un peu

    J'aimerais bien donc remplacer le print par quelque chose qui s'afficherait au dessu de toutes l'application en plein écran.

    Donc le but de mon programme, lorsqu'il sera fini est de traiter les données affichées à l'écran en faisant des calculs complexes, puis d'afficher un résultat sur la droite de l'écran.

    *****  EDIT :  *****

    j'ai trouvé quelque chose avec tkinter, ça s'affiche bien au dessus des applications de bureau, mais lorsque c'est une application en plein écran, le texte disparait :

    import tkinter, win32api, win32con, pywintypes
    
    
    class variables:
        def __init__ (self,auec):
            self.auec = auec
    
    stat = variables(0) #variable qui correspond au compteur à afficher
    
    
    def compteur():
        stat.auec += 1 #incrémentation du compteur
        text_fini = "aUEC : "+str(stat.auec) #texte à afficher
        label = tkinter.Label(text=text_fini, justify="left", font=('Bahnschrift SemiBold','20'), fg='black', bg='white') #police et couleur du texte
        label.master.overrideredirect(True)
        label.master.geometry("+1700+400")
        label.master.lift()
        label.master.wm_attributes("-topmost", True)
        label.master.wm_attributes("-disabled", True)
        label.master.wm_attributes("-transparentcolor", "white")
        hWindow = pywintypes.HANDLE(int(label.master.frame(), 16))
        exStyle = win32con.WS_EX_COMPOSITED | win32con.WS_EX_LAYERED | win32con.WS_EX_NOACTIVATE | win32con.WS_EX_TOPMOST | win32con.WS_EX_TRANSPARENT
        win32api.SetWindowLong(hWindow, win32con.GWL_EXSTYLE, exStyle)
        label.grid(row=0,column=0)
        label.after(100,compteur)
    
    
    label = tkinter.Label(text=stat.auec, font=('Bahnschrift SemiBold','28'), fg='black', bg='white')
    
    compteur()
    label.mainloop()

    apres bah je sais pas comment faire pour continuer d'afficher en plein écran, si quelqu'un a une idée et qu'il arriverait a m'expliquer ça serait cool

    bonne journée !

    -
    Edité par _Tugdual_ 6 avril 2020 à 13:51:45

    • Partager sur Facebook
    • Partager sur Twitter

    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.

    Affichage en plein écran

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown