Bild anzeigen?

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Nilsemann
User
Beiträge: 1
Registriert: Dienstag 23. August 2016, 22:57

Moin,

ich bin komme eigentlich aus der C++, Objective-C und Swift Ecke. Für ein simples Projekt jedoch hat sich wohl Python als hilfreich herausgestellt.

Ich habe eine klassische Fotobox gebastelt, bisher lief die über einen Arduino - nun habe ich einen Raspberry PI eingesetzt und ein simples Skript das auf Knopfdruck gphoto aufruft und dadurch ein Bild fotografiert und im Homeverzeichnis ablegt.

Ich habe nun das Raspberry Touch Display im Einsatz und hätte natürlich gerne das das letzte Foto auf dem Display angezeigt wird und das ist meine Frage: WIE?

Code: Alles auswählen

import RPi.GPIO as GPIO, time, os, subprocess

GPIO.setmode(GPIO.BCM)
SWITCH = 24
GPIO.setup(SWITCH, GPIO.IN)

      print("Foto!")
      time.sleep(1.5)
      gpout = subprocess.check_output("gphoto2 --capture-image-and-download --filename /home/pi/pbox_images/PBox_%H%M%S.jpg", stderr=subprocess.STDOUT, shell=True)
      print(gpout)
    print("BILD ANZEIGEN")
Für ein paar Schubsen in die richtige Richtung wäre ich dankbar.

Gruß,
Nils
BlackJack

@Nilsemann: Du müsstest Dir eine Bibliothek suchen mit der man ein Bild anzeigen kann, zum Beispiel Pygame oder PIL und Tkinter, und das Bild dann laden und anzeigen. Da Du den Bildnamen nicht selbst erstellst, müsstest Du die Dateinamen im Ordner und davon das neueste ermitteln. Vorsicht: Nicht auf die Reihenfolge von `os.listdir()` oder `glob.glob()` verlassen — die ist nicht garantiert.

Zum gezeigten Quelltext: Das ``shell=True``-Argument und damit den unnötigen, zwischengeschalteten, zusätzlichen Shell-Prozess solltest Du loswerden. Dazu besteht überhaupt keine Notwendigkeit. Ausserdem gibt es verschiedene Anbindungen an `libgphoto2`, so dass man dafür keinen externen Prozess starten muss. `piggyphoto` wäre beispielsweise so ein Modul.
Antworten