Seite 1 von 1
1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 10:54
von egon11
Ist es machbar, ein Bild von meiner Raspi camera gleichzeitig in zwei verschiedene Ordner zu speichern?
Hier meine ausgangslage:
Ich würde einmal in '/home/pi/' und einmal in '/home/' speichern wollen.
Das ist jetzt natürlich nur ein Beispiel.
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 10:57
von sebastian0202
Erstelle doch einen Link zur Originaldatei.
Mit subprocess kann man sowas umsetzen.
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 10:59
von egon11
Das Problem ist, dass ich das Bild verschieden benennen möchte.
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 11:01
von sebastian0202
Du kannst den Linknamen benennen wie du möchtest. Vielleicht solltest du erst einmal lesen und schauen, ob es für dich zutrifft.
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 11:05
von BlackJack
@sebastian0202: Wozu soll da `subprocess` gut sein? Und ein Link ist nicht das selbe wie ein Bild zweimal zu speichern.
@egon11: Einen Link kann man mit der entsprechenden Funktion aus dem `os`-Modul erzeugen. im `shutil`-Modul gibt es Funktionen zum kopieren von Dateien.
Man kann `PiCamera.capture()` statt eines Dateinamens auch ein Dateiobjekt übergeben, also auch ein `io.BytesIO`-Objekt. Und dessen Inhalt kann man dann in zwei Dateien speichern.
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 11:25
von egon11
Ok.
Wie würde meine python Datei aussehen,
wenn ich einemal das Bild in /home/pi/bild.jpg und einmal das gleiche Bild in /home/mein.jpg speichern möchte?
Code: Alles auswählen
io.BytesIO = "/home/pi/bild.jpg"
cam.capture( io.BytesIO)
?
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 11:29
von BlackJack
@egon11: Du müsstest ein `BytesIO`-Objekt erstellen, das als Argument an `capture()` übergeben, Dir danach vom `BytesIO`-Objekt mit der entsprechenden Methode den Inhalt geben lassen, und diesen dann in zwei Dateien speichern.
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 11:35
von egon11
@ BlackJack
Hast du für mich ein kleines Beispiel?
Eine Muster.py?
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 11:52
von BlackJack
@egon11: Woran hängt es denn konkret?
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 12:47
von egon11
Ich wollte mal ein Schematischen Aufbau haben, also die Zeilen die ich in mein Python script brauche, dass das mit "BytesIO" funktioniert.
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 12:59
von BlackJack
@egon11: Der schematische Aufbau sind einfach ein paar Zeilen Code mit Anweisungen die linear abgearbeitet werden. Einzig das Speichern in zwei Dateien würde ich in eine Schleife über die beiden Dateinamen stecken. Und ich würde das erstellen des Bildes und das Speichern der Daten jeweils in eine Funktion stecken. Also ”schematisch”:
Code: Alles auswählen
# ...
image_data = capture(camera)
for path in ['/home/pi/test.jpg', '/var/www/image.jpg']:
save(path, image_data)
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 13:16
von egon11
Ok danke, jetzt muss ich nur noch 'save' definieren.
Wie mache ich dass?
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 13:38
von BlackJack
@egon11: Wieder die Gegenfrage: Woran hängt es denn konkret? Funktionen definieren kannst Du ja schon wenn Dir nur noch `save()` fehlt, denn das hast Du bei `capture()` dann ja bereits gemacht. Und Daten in eine Datei speichern sollte in jedem Grundlagentutorial vorkommen. Im Tutorial in der Python-Dokumentation gibt es beispielsweise den Abschnitt
Reading and Writing Files. Am besten bis zuende, bis zur ``with``-Anweisung durcharbeiten.
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 15:34
von sebastian0202
Mit subprocess kann man doch shell Befehle absetzen.
Ich dachte man darf os.system oder os.shutil nicht nehmen?
Hab mir angewöhnt nur noch subprocess dafür zu nutzen.
Ich hätte gedacht ein Link zur Datei reicht aus. Wozu brauch man ein Bild denn zwei mal?
Re: 1 Bild in 2 Dateien speichern
Verfasst: Mittwoch 18. Januar 2017, 15:45
von BlackJack
@sebastian0202: Ja zum starten von externen Programmen sollte man `subprocess` verwenden, aber wozu willst Du externe Programme starten für Sachen die man mit der Python-Standardbibliothek erledigen kann?