2016-10-19 4 views
1

ich an einem Projekt arbeitet, die Bilder durch ein tkinter Fenster mit Pillow Modulöffnung umfasst.Python Öffnung Bilder ohne cmd

Immer wenn ich versuche Bilder zu öffnen, werden sie mit einem schwarzen Bildschirm auf dem Rücken geöffnet.

Wie kann ich sie alleine öffnen?

ich auf ein Foto klicken Sie hier: first photo

und es öffnet sich mit einem schwarzen Bildschirm hinter: second photo

Das ist mein go_to_function:

from PIL import Image 

def go_to_photo(): 
    try: 
     img = Image.open(source_file_org_images_path + "/" + photo_name_name + '.png') 
     img.show() 
     img.close() 
    except: 
     try: 
      img = Image.open(source_file_org_images_path + "/" + photo_name_name + '.jpg') 
      img.show() 
      img.close() 
     except: 
      try: 
       img = Image.open(source_file_org_images_path + "/" + photo_name_name + '.jpeg') 
       img.show() 
       img.close() 
      except: 
       print('without a photo') 
+1

Wie führen Sie diese Funktion aus? Direkt im Code oder mit 'subprocess()'? Wahrscheinlich 'img.show()' creating window läuft 'cmd.exe' (dieser schwarze Bildschirm hängt). Verwenden Sie 'tk.TopLevel()', um ein eigenes Fenster zu erstellen und das Bild in 'tk.Label' anzuzeigen. – furas

+0

Ich benutze es direkt im Code. Ja, img.show() erstellt die Fenster und ich weiß nicht wie ich sie schließe. Danke für die Idee, aber es gibt keine eingebauten Argumente von Image, die den schwarzen Bildschirm blockieren. –

+0

Ich glaube nicht, dass es irgendwelche Argumente gibt. Wie ich weiß, wurde 'show()' erstellt, um ein Bild in einem kurzen Skript anzuzeigen - hauptsächlich um Code zu debuggen. – furas

Antwort

0

Vom docs:

Unter Windows es speichert das Bild in eine temporäre BMP-Datei und verwendet die Standard BMP Anzeige Dienstprogramm, es zu zeigen.

Das bedeutet, dass Sie einfach Ihr Standardprogramm ändern können, um bmp-Dateien mit z. Malen, und es wird dieses Programm verwenden, um Ihre Bilder anzuzeigen.

Übrigens: Sie können die img.show() und img.close() nach Ihren try-except-Blöcken verschieben, so dass Sie sich nicht so oft wiederholen müssen.

+0

Es hat nicht funktioniert. Ich verwende Picasa als Standardprogramm, aber es ist nutzlos. –