Problem beim abspeichern von Fotos durch überspeichern

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Moin erstmal,

    ich habe ein kleines Problem und bekomme die Lösung nicht hin.

    Ich möchte bei python über mein Raspberry ein Foto schießen und mein Problem ist das das Foto natürlich immer überschrieben wird, deswegen möchte ich das Foto mit dem Datum versehen aber das bekomme ich nicht hin wäre gut könnte irgendwer mir dabei Helfen.

    from picamera import PiCamera

    from time import sleep

    from gpiozero import Button

    import RPi.GPIO as GPIO

    import datetime

    now=datetime.datetime.now()

    jetzt=now.strftime('%H:%M:%S')


    button = Button (21)

    camera = PiCamera()

    GPIO.setmode(GPIO.BCM)

    GPIO.setwarnings(False)


    print("PUSH THE BUTTON")

    print (jetzt)


    while True:

    button.wait_for_press()

    camera.start_preview(alpha=200)

    GPIO.setup(26, GPIO.OUT) # Relai

    GPIO.setup(23, GPIO.OUT) # LED 1

    GPIO.setup(24, GPIO.OUT) # LED 2

    GPIO.setup(18, GPIO.OUT) # LED 3

    GPIO.output(23, GPIO.HIGH) # LED 1

    sleep(1)

    GPIO.output(23, GPIO.LOW) # LED 1

    GPIO.output(26, GPIO.HIGH) # Relai für Beleuchtung an

    GPIO.output(24, GPIO.HIGH) # LED 2

    sleep(1)

    GPIO.output(24, GPIO.LOW) # LED 2

    GPIO.output(18, GPIO.HIGH) # LED 3

    sleep(1)

    GPIO.output(18, GPIO.LOW) # LED 3

    camera.capture(''jetzt'.jpg') # Foto wird erstellt

    GPIO.output(26, GPIO.LOW) # Relai für Beleuchtung aus

    camera.stop_preview()

  • Problem beim abspeichern von Fotos durch überspeichern? Schau mal ob du hier fündig wirst!

  • Zur hilfreichsten Antwort springen
  • Hey,

    was bekommst du denn für eine Fehlermeldung bzw. unter welchem Namen wird dein Foto denn abgespeichert? Vermutlich gar nicht?

    Es ist etwas schwerer deinen Code zu lesen. Klicke doch bitte auf "Code" und füge ihn dort ein. Wenn die automatische Erkennung nicht funktioniert, kannst du noch "Python" auswählen.

    Ich kenne mich auch nicht besonders gut mit Python aus, doch auf den ersten Blick vermute ich den Fehler in dieser Zeile:

    camera.capture(''jetzt'.jpg') # Foto wird erstellt

    Ich würde eher so vorgehen filename = jetzt + '.jpg' und das später dann aufrufen mit camera.capture(filename)

    Falls es nicht hilft, bis du deinen ersten Beitrag bearbeitet hast, so das er einfacher zu lesen ist, bis dahin sind bestimmt auch die Profis hier ^^:thumbup:

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Hallo Bexte,

    Code
    timestamp = datetime.now().isoformat()
    camera.capture('/home/pi/%s.jpg' % timestamp)

    dabei packt er Doppelpunkte in den Dateinamen.

    Ohne Doppelpunkte z.B.

    Code
    timestamp = datetime.now().strftime('%d-%m-%Y_%H-%M-%S')
    camera.capture('/home/pi/%s.jpg' % timestamp)

    Viele Grüße,

    Tigerbeere

  • Zusätzlich zu erwähnen ist noch, dass man Pfade mit pathlib zusammen setzt ;)

    Grundsätzlich ja, aber ich meine mich zu erinnern, dass picamera damit nicht klarkommt, und man das ganze noch in ein str() verpacken muss. Mag sein, dass das mittlerweile nicht mehr der Fall ist - wollt's nur erwähnt haben ;)

    Edit: siehe hier: https://github.com/waveform80/pic….py#L1479-L1495

  • Hallo,

    dann so:

    Python
    >>> from pathlib import Path
    >>> from datetime import datetime
    >>> PFAD = Path('/home/pi')
    >>> now = datetime.now().strftime('%Y-%m-%d_%H%M%S')
    >>> output = (PFAD / now).with_suffix('.jpg').as_posix()
    >>> output
    '/home/pi/2020-07-13_200310.jpg'
    >>>

    Wobei `Path` Objekte ja zwei Methoden zum Schreiben haben (`write_bytes` und `write_text`) - aber eben keine, die nur `write` heißt.

    Gruß, noisefloor

    Einmal editiert, zuletzt von noisefloor (13. Juli 2020 um 20:23) aus folgendem Grund: bessere Syntax

    • Offizieller Beitrag

    Meiner bescheidenen Meinung nach gibt es noch ganz andere Dinge an diesem Code zu optimieren. Da fällt dieser "kleine" String kaum ins Gewicht. :cool:

    Bexte Hier ein paar Ansätze:

    https://gpiozero.readthedocs.io/en/stable/reci…ntrolled-camera

    https://gpiozero.readthedocs.io/en/stable/recipes.html#led

    https://gpiozero.readthedocs.io/en/stable/api_…ml#outputdevice

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!