claim.gif
Linux Magazin Linux User Easy Linux International Linux Community
Erschienen in EasyLinux 06/2005   »   Ausgabe bestellen

Bilder mit gphoto2 auslesen

Konsolen-Knipskiste

von Heike Jurzik


In unserer Titelstrecke ab Seite 18 stellen wir grafische Programme zum Arbeiten mit Digitalkameras vor -- fast alle verwenden im Hintergrund die "gphoto2"-Software. Teil des Pakets ist das Kommandozeilen-Tool "gphoto2", das beim Arbeiten mit Digitalkameras unter Linux einen neuen Horizont eröffnen kann.

Prinzipiell gibt es zwei Wege, eine Digitalkamera unter Linux anzusprechen: Entweder meldet sich das Gerät als Festplatte am System an, oder Sie benötigen spezielle Treiber. Dank des gphoto2-Paketes [1] ist das heute unter Linux kein Hexenwerk mehr, und viele Modelle werden bereits unterstützt. Mit dabei ist außerdem das Kommandozeilenprogramm gphoto2, das auf der Konsole Informationen zur Kamera und ihren Features ausliest, Dateien vom Speichermedium herunterlädt, Daten löscht und sogar das Ausgabeformat der Daten auf der eigenen Festplatte anpasst. Bei allen vier von EasyLinux unterstützten Distributionen ist das Programm in Version 2.1.4 installiert.

Erste Schritte

Bevor Sie loslegen, sollten Sie überprüfen, ob gphoto2 Ihr Kameramodell unterstützt. Starten Sie eine Konsole, z. B. über [Alt-F2] und Eingabe von konsole. Um eine vollständige Liste aller unterstützten Kameras zu enthalten, tippen Sie ganz einfach:

$ gphoto2 --list-cameras
Anzahl der unterstützten Kameras: 512
Unterstützte Kameras:
    »AEG Snap 300«
    »Agfa ePhoto 1280«
    »Agfa ePhoto 1680«
    »Agfa ePhoto 307«
...

Da diese Liste recht lang ist (immerhin sind es in der aktuellen Version mehr als 500 Kameramodelle), leiten Sie die Ausgabe einfach in den Pager less um und betrachten die Ausgabe seitenweise:

gphoto2 --list-cameras | less

Wer hingegen gezielt nach dem eigenen Modell suchen möchte, kann auch hier ein Kommandozeilenprogramm zur Hilfe nehmen und die Ausgabe mit Hilfe von grep [2] nach einer Zeichenkette durchsuchen:

$ gphoto2 --list-cameras | grep -i ixus
    »Canon Digital IXUS«
    »Canon Digital IXUS 2 (PTP mode)«
    »Canon Digital IXUS 300«
    »Canon Digital IXUS 330«
...

Verwenden Sie zusammen mit dem Befehl die Option -i, die dafür sorgt, dass grep sich nicht um Groß- und Kleinschreibung kümmert.

Als Nächstes überprüfen Sie die Anschlussmöglichkeiten Ihrer Kamera. Die meisten neueren Modelle besitzen ein USB-Kabel, das Sie mit dem USB-Port Ihres Rechners verbinden können. Suse Linux erkennt und konfiguriert USB-Kameras dank Hotplug automatisch, sobald diese mit dem Computer verbunden und einschaltet werden. Eine Auflistung der zur Verfügung stehenden Anschlüsse erhalten Sie mit dem Befehl gphoto2 --list-ports (Abbildung 1).

Abb. 1: Der Befehl "gphoto2 --list-ports" zeigt: Ein USB-Anschluss steht für die Kamera zur Verfügung.

Hat gphoto2 einen Port gefunden, ist es Zeit, die Kamera anzuschließen, einzuschalten und zu testen, ob das System Ihnen auch die nötigen Lese- und Schreibrechte gegeben hat. Der Parameter --auto-detect macht genau das, was der Name vermuten lässt -- gphoto2 versucht, Ihre Kamera automatisch zu erkennen:

$ gphoto2 --auto-detect
Modell                         Port
-----------------------------------
Canon Digital IXUS 330         usb:

Im Beispiel schön zu erkennen: gphoto2 hat die im Test verwendete Kamera Canon Digital IXUS 330 eindeutig erkannt. Jetzt können Sie noch etwas mehr über das Gerät in Erfahrung bringen. Auch dabei unterstützt gphoto2 Sie tatkräftig auf der Konsole.

Was steckt drin?

Um herauszufinden, was die Kamera alles auf dem Kasten hat, setzen Sie den Parameter -a (wie englisch "abilities" = "Fähigkeiten") ein. Zusätzliche Informationen zum Kamera-Status verrät weiterhin der Parameter --summary (englisch "Zusammenfassung"). Die beiden Befehle und ihre jeweilige Ausgabe finden Sie im Kasten Ausgabe von "gphoto2 -a" und "gphoto2 --summary".

Ausgabe von gphoto2 -a und gphoto2 --summary
$ gphoto2 -a
Fähigkeiten für Kamera           : Canon Digital IXUS 330
Unterstützung für seriellen Port : Nein
USB-Unterstützung                : Ja
Aufnahme machen (Auswahl)        :
                                 : Bild
                                 : Bildvorschau
Konfigurationsunterstützung      : Ja
Unterstützung für Bildlöschung   : Ja
Unterstützung für Bildvorschau   : Ja
Unterstützung für Bildhochladen  : Nein

$ gphoto2 --summary
Erkannte eine »Canon:Digital IXUS 330«.
Kamerazusammenfassung:

Kameraidentifizierung:
  Modell: Canon:Digital IXUS 330
  Eigentümer: Heike Jurzik

Energiestatus: mit Batterie  (Energieversorgung OK)

Flash Disk-Information:
  Laufwerk D:
  251.129.856 bytes gesamt
  166.207.488 bytes verfügbar

Zeit: 2005-04-12 15:27:51 (Zeit am PC +0 Sekunden)

Ebenso informativ zeigt sich gphoto2, wenn es darum geht, den Inhalt des in der Kamera verwendeten Speichermediums aufzulisten. Dabei haben Sie einerseits die Möglichkeit, sich nur die Verzeichnisstruktur anzuschauen, indem Sie die Option -l verwenden; andererseits können Sie mit dem Parameter -L den kompletten Inhalt (inklusive Bilder und -- falls Ihre Kamera dieses Feature unterstützt -- Videos) dieser Ordner anzeigen. Abbildung 2 zeigt Ausschnitte aus der "Inhaltsangabe" -- deutlich zu sehen: Neben etlichen Bildern sind hier auch einige Videos auf dem Speicher vorhanden.

Abb. 2: Was steckt drin? Den Inhalt des Speichermediums lesen Sie mit "gphoto2 -l" bzw. "gphoto2 -L" aus.

Wer es etwas weniger genau wissen möchte, kann den Parameter -n einsetzen, um lediglich die Anzahl der Dateien auszugeben:

$ gphoto -n
Erkannte eine »Canon:Digital IXUS 330«.
Anzahl der Dateien im Verzeichnis »/«: 0

Deutlich zu sehen in dieser Ausgabe: gphoto2 zeigt standardmäßig nur den Inhalt des Ordners "/" an und findet deswegen hier keine Dateien. Wie Sie aber aus dem Aufruf gphoto2 -l wissen, gibt es Unterverzeichnisse, welche die tatsächlichen Bilder und Videos enthalten. Über den zusätzlichen Parameter -f (wie englisch "folder" = "Ordner") definieren Sie daher, wo gphoto2 zählen soll:

$ gphoto2 -f /DCIM/124CANON -n
Erkannte eine »Canon:Digital IXUS 330«.
Anzahl der Dateien im Verzeichnis »/DCIM/124CANON«: 44

Auf die Platte, fertig, los!

Wer einfach nur alle Bilder in einem Rutsch von der Kamera laden möchte, erreicht dieses über den Befehl

$ gphoto2 -P
Erkannte eine »Canon:Digital IXUS 330«.
Lade »IMG_2457.JPG« aus Verzeichnis »/DCIM/124CANON«...
Speichere Datei als IMG_2457.JPG
Lade »IMG_2458.JPG« aus Verzeichnis »/DCIM/124CANON«...
Speichere Datei als IMG_2458.JPG
Lade »IMG_2459.JPG« aus Verzeichnis »/DCIM/124CANON«...
Speichere Datei als IMG_2459.JPG
...

Dabei landen alle Dateien direkt im aktuellen Verzeichnis. Wer sich also im Home-Verzeichnis befindet und dieses nicht mit Bildern überfluten möchte, legt einen neuen Ordner an und wechselt hinein. Auf der Kommandozeile erledigen das die Befehle mkdir (englisch "make directory" = "erstelle Verzeichnis") und cd ("change directory" = "wechsel Verzeichnis"):

mkdir tmp_pics
cd tmp_pics/

Wollen Sie nur einzelne Daten von der Kamera auf die Festplatte ziehen, erledigen Sie das mit dem Parameter -p. Dahinter können Sie entweder einen Bereich, also -p 1-10 für die ersten zehn Dateien, oder eine durch Kommata getrennte Liste (z. B. -p 1,5,10) angeben. Die Nummern der Dateien sehen Sie, wenn Sie -- wie schon gezeigt -- ein langes Listing mit gphoto2 -L ausgeben. Dabei kommt dem Komma eine weitere besondere Bedeutung zu: Definieren Sie einen Bereich, z. B. 1-4, und setzen Sie danach ein Komma gefolgt von einer Ziffer aus eben jenem Bereich, wird die passende Datei ausgeschlossen. So lädt der Befehl

gphoto2 -p 1-4,3

die Dateien 1, 2 und 4 herunter -- die 3 wurde ausgeklammert. Anders sieht das aus, wenn die durch das Komma abgetrennte Zahl außerhalb des definierten Bereichs liegt. Der Aufruf

gphoto2 -p 1-4,8

lädt die Dateien mit der Nummer 1 bis 4 und zusätzlich Bild Nummer 8 herunter.

Praktisches Feature: Befindet sich eine Datei mit demselben Namen bereits in dem Verzeichnis, in das Sie die Daten herunterladen, fragt gphoto2 nach:

Datei IMG_2557.JPG existiert bereits. Überschreiben? [y|n]

Tippen Sie an dieser Stelle [N], bietet das Tool an:

Neuen Dateinamen angeben? [y|n]

Drücken Sie hier die Taste [Y], können Sie als Nächstes einen eigenen Namen definieren, unter dem gphoto die Datei dann ablegt.

Daumennagelgroß

Weil Sie etwa so groß wie ein Daumennagel sind, werden die verkleinerten Vorschaubilder oft Thumbnails (englisch "Daumennagel") genannt. gphoto2 bietet an, den Inhalt des Speichermediums in dieser kleinen Ansicht auf die eigene Platte zu holen. Wollen Sie alle Thumbnails auf einmal holen, verwenden Sie die Option -T; sollen es wieder nur ausgewählte Dateien sein, können Sie mit -t einen Bereich definieren (also z. B. -t 1-10). Die Dateien sind von den Bild- und Videodaten zu unterscheiden, weil sie den Zusatz thumb_ vor dem Namen haben (Abbildung 3).

Abb. 3: Darf's auch etwas kleiner sein? "gphoto2" legt auf Wunsch Thumbnails an.

Hausputz

gphoto2 bringt einige Optionen mit, die dabei helfen, das Speichermedium leerzufegen. Sicherheitsabfragen gibt es für die Optionen zum Löschen nicht -- daher gilt es aufzupassen: Was weg ist, ist weg. (Einige Kameras unterstützen zwar das Hochladen von Dateien, das scheint aber bisher eher die Ausnahme als die Regel zu sein.) Für das Entfernen von Daten müssen Sie darüber hinaus wieder den Parameter -f zusammen mit dem Ordner auf dem Speichermedium angeben. Schauen Sie daher zuerst mit gphoto2 -L nach, was sich auf dem Speicher befindet. Entscheiden Sie sich dann für das Löschen aller Dateien in einem Ordner, tippen Sie beispielsweise:

gphoto2 -f /DCIM/124CANON --delete-all-files

Wer stattdessen lieber einen Bereich zum Löschen bestimmen und auf Tabula Rasa verzichten möchte, erreicht das beispielsweise über

gphoto2 -f /DCIM/125CANON --delete-file 58

Auch hier muss explizit der Ordner auf dem Speichermedium über -f angegeben werden. Etwas umständlich ist leider die Bezeichnung der zu entfernenden Dateien: 58 aus diesem Beispiel bezeichnet die 58. Datei in genau jenem Folder -- in der Gesamtübersicht war es jedoch die Nummer 102. So hilft an dieser Stelle nur mühsames Abzählen, um Fehler beim Kartenputz zu vermeiden.

Die Form wahren

Standardmäßig speichert gphoto2 die Bilder auf der Festplatte im Format IMG_<nummer>.JPG bzw. MVI_<nummer>.AVI und nummeriert die Dateien fortlaufend durch. Wer die Dateinamen anders gestalten will, kann diese selbst zusammensetzen. Dazu stehen verschiedene Ausgabeformate zur Verfügung, die jeweils aus einem Prozentzeichen und einem Buchstaben bestehen. Die Tabelle "gphoto2"-Formate für Dateinamen bietet eine Übersicht der wichtigsten Optionen. Leider greifen hier die deutschen Spracheinstellungen nicht, so dass alle Tage-, Wochen- und Monatsnamen in englischer Sprache erscheinen; das ist aber zu verschmerzen.

gphoto2-Formate für Dateinamen
FormatFunktion
%YDas Jahr, vierstellige Ziffer, also z. B. 2005.
y%Das Jahr, zweistellige Ziffer, also z. B. 05.
%bDer Monat in Kurzform, also z. B. Apr.
%BDer Monat in Langform, also z. B. April.
%mDer Monat als zweistellige Ziffer, also z. B. 11.
%aDer Wochentag in Kurzform, also z. B. Sun.
%ADer Wochentag in Langform, also z. B. Sunday.
%dDer Tag (01 - 31), also z. B. 04.
%HDie Stunde im zweistelligen 24-Stunden-Format, also z. B. 22.
%IDie Stunde im zweistelligen 12-Stunden-Format, also z. B. 10.
%MDie Minute im zweistelligen Format, also z. B. 57.
%SDie Sekunde im zweistelligen Format, also z. B. 55.

Aus diesen Bausteinchen setzen Sie sich jetzt einfach selbst die gewünschten Dateinamen zusammen. Dabei dürfen Sie zur besseren Lesbarkeit auch Zeichen wie den Binde- und Unterstrich, Punkt und Doppelpunkt verwenden. Wer seine Fotos z. B. nach vierstelliger Jahreszahl, Monat in Langform, Tag als zweistellige Ziffer, und der Zeit (bestehend aus Stunde im zweistelligen 24-Stunden-Format, Minute und Sekunde im zweistelligen Format) sortieren möchte, kann gphoto2 mit folgender Befehlskette starten:

$ gphoto2 -p 1-5 --filename %Y_%B_%d_-_%H:%M:%S.jpg
Erkannte eine »Canon:Digital IXUS 330«.
Lade »IMG_2457.JPG« aus Verzeichnis »/DCIM/124CANON«...
Speichere Datei als 2005_March_07_-_11:20:56.jpg
Lade »IMG_2458.JPG« aus Verzeichnis »/DCIM/124CANON«...
Speichere Datei als 2005_March_09_-_16:26:52.jpg
...

Die eingefügten Satzzeichen erhöhen die Lesbarkeit -- experimentieren Sie mit den verschiedenen Ausgabeformaten, bis Sie das beste Format gefunden haben.

Fazit

Es muss nicht immer grafisch sein -- mit gphoto2 steht Ihnen ein flinker Helfer zur Seite, der nicht nur in Windeseile Informationen über die Kamera und die unterstützten Features liefert, sondern auch für flotten Download der Daten -- im selbst gebastelten Wunschformat -- sorgt. Wer dennoch lieber mit den grafischen Verwandten arbeitet, kann sich auf der Kommandozeile immerhin einen Überblick verschaffen, was gphoto2 alles leistet, und mit diesem Wissen gezielter in den GUI-Programmen nach Funktionen und Features suchen. (hge)

Infos
[1] Das gphoto-Projekt: http://www.gphoto.org/
[2] grep-Artikel: Elisabeth Bauer, "Textfischer", EasyLinux 10/2003, S. 74 ff.,http://www.easylinux.de/2003/10/074-grep/

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2010 Linux New Media AG | Last modified: 2007-04-05 11:10

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]