• In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Neuer Partner: AkkuShop.de
    Akkus, Ladegeräte und mehr (nicht nur) für Digitalkameras und Drohnen
  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs April 2025.
    Thema: "Plastik (Kunststoff)"

    Nur noch bis zum 30.04.2025 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
  • Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Unlauterer Verkäufer wieder unterwegs!

    Liebe Mitglieder,
    Florian Franzek, der seit Jahren mit verschiedensten Usernamen in allen möglichen Foren und auf etlichen Verkaufsplattformen auftritt,
    ist wieder hier im Forum und versucht, ehrliche Käufer zu betrügen.
    Wir können wenig tun, außer bei Bekanntwerden einer weiteren Registrierung eines Accounts für seine Machenschaften, diese umgehend zu sperren.
    Ich empfehle, bei Kontakt umgehend die Polizei einzuschalten.

WERBUNG

Bilder individuell sortieren und umbenennen (Linux)

KPT

Themenersteller
Hallo liebe Forumsgemeinde,

ich brauche mal euren Rat für folgendes Problem:

für erstmal ein (und in Zukunft vielleicht auch mehrere) Videos brauche ich einige Bilder in eine individuelle Reihenfolge (ungleich der Aufnahme-Reihenfolge der Kamera) gebracht. Wenn es nur 20 oder 30 Bilder wären, würde ich einfach kurz alle umbenennen und das wars. Es werden jetzt aber wahrscheinlich etwa 300-500 Bilder pro Video, und die sind mir etwas zu viele.

Bisher sind meine Bilder nach Aufnahme-Datum und -Uhrzeit benannt und in Darktable verwaltet. Dort sind auch hierarchisch (als Projekt/Projektname/Bild001 fortlaufend) passende Stichworte vergeben. Dieses würde ich gerne als Dateinamen benutzen. Mittels Exiftool habe ich schon festgestellt, dass es in "hierarchicalSubject" steckt (leider aber auch nicht als einziges, es sind teilweise auch Namen und Orte vorhanden).
Ich würde gerne mittels Exiftool oder ähnlichem Programm das Stichwort aus 'hierarchicalSubject' separieren und als Dateinamen vergeben.

Die Frage ist deshalb: Wie kann ich das mittels Skript/Programm/enig Aufwand hinbekommen?

Mein benutztes Betriebsystem ist Xubuntu 12.04, Bildverwaltung und Bearbeitung mit Darktable und (bei Bedarf) Gimp.
Die Videobearbeitung / -Erstellung ist kein Problem mehr, wenn die Reihenfolge stimmt.

Ich freue mich auf eure Antworten.

Viele Grüße

KPT

PS: ich bin hoffentlich im richtigen Bereich, wenn nicht bitte verschieben
 
Eigentlich nicht so schwer, aber:
Ich versteh nicht so genau was du willst!?!?
Stichwort als Dateiname? Wenn du 2 x das Stichwort "Sonnenuntergang" hast geht das doch in die Hose?!?!

Gib doch mal eine Ausgabe von exiftool als Beispiel und wie dann der Dateiname lauten soll.
 
Bisher sind meine Bilder nach Aufnahme-Datum und -Uhrzeit benannt und in Darktable verwaltet. Dort sind auch hierarchisch (als Projekt/Projektname/Bild001 fortlaufend) passende Stichworte vergeben. Dieses würde ich gerne als Dateinamen benutzen. [..]
Die Frage ist deshalb: Wie kann ich das mittels Skript/Programm/enig Aufwand hinbekommen?

Mein benutztes Betriebsystem ist Xubuntu 12.04, Bildverwaltung und Bearbeitung mit Darktable und (bei Bedarf) Gimp.

Nimm einfach die Umbenennungsfunktion in digikam. Da kannst Du direkt Metadaten als Parameter auswählen.

Unter Windows geht es ähnlich mit Irfanview, aber viel kryptischer.
 
@armdie: hier ertmal die Ausgabe:

Code:
max@max-desktop:~$ exiftool -HierarchicalSubject ./Bilder/Ergebnisse/test/02_06_2012-16_15_55-00.jpg 


Hierarchical Subject            : Projekt|scene001|bild007, Ereignisse|Caritas|Lebenshaus|Tag der offenen Tür, Personen|Arbeit|Caritas|Hr. Horscher, Personen|Arbeit|Caritas|Fr. Rummel, Autos|Oldtimer

das Tag das mit Projekt beginnt endet bei einem Bild mit Bild007 bei einem anderen mit Bild300. Ich suche jetzt einen Möglichkeit, dieses Tag als Dateinamen zu benutzen, ohne jede Datei einzeln manell anzufassen.


@Lichtbildle: Danke für den Tipp. Kannst du mir vielleicht sagen, wie das geht? Ich kriege bei meinen bisherigen Versuchen nicht. :confused:

VG

KPT


Edit: Ich habe gerade herausgefunden, wie ich mit digikam aus dem'Value'-Feld den Dateinamen kreieren kann. Würde mir denke ich auch weiterhelfen, wenn ich hiervon nur ein einzelnes Tag (wie z.B. Bild001 (=das variable Tag, das in Darktable fortlaufend angelegt wurde) ) als Dateinamen nutzen kann.
 
Zuletzt bearbeitet:
Ich bin kein Digikam-Auskenner und mußte auch herumfummeln, was nur teilweise geklappt hat. :confused: Zunächst müssen die Metadaten an der richtigen Stelle vorhanden sein, z.B. Bildbeschreibung als IPTC-Caption.

Das plus eine laufende dreistellige Nummer ergibt dann nach Zusammenklicken im Umbenennen-Dialog (Dateien markieren, F2, unter "Metadaten" -> IPTC -> Caption) diesen Ausdruck:
[meta:Iptc.Application2.Caption]###

Alternative: Wähle die Bilder einfach blockweise aus und benenne sie mit direkt eingetipptem Text um. "beispiel###" ergibt beispiel001.jpg, beispiel002.jpg etc.
 
Zuletzt bearbeitet:
Versteh ich das richtig, dass das Bild nach dem Umbenennen
Ereignisse_Caritas_Lebenshaus_Tag_der_offenen_Tür_Personen_Arbeit_Caritas_Hr._Horscher_Personen_Arbeit_Caritas_Fr._Rummel_ Autos_Oldtimer.jpg
heissen soll?

Bisschen unhandlich, oder?

normalerweise würde ich so vorgehen (Beispielcode ohne richtige Syntax)

#schleife über alle bilder
for OLDNAME in *.jpg; do
# mit awk gewünschtes Tag extrahieren
NEWNAME=`awk '/"Hierarchical Subject/" {print $4}'`
# umbennen oder gleich auf gewünschte Grösse konvertieren
convert -size 1900x1080 $OLDNAME $NEWNAME.jpg
done

Nur- du hast so viele Tags und wahrscheinlich in unterschiedlicher Reihenfolge - willst du wirklich alle? Und das Datum würde ich eigentlich auch mit übernehmen, falls Tags doppelt sind.
 
Ich bin kein Digikam-Auskenner und mußte auch herumfummeln, was nur teilweise geklappt hat.

Schade, ich dachte du wärst ein regelmäßiger Nutzer, der sowas weiß.

Zunächst müssen die Metadaten an der richtigen Stelle vorhanden sein, z.B. Bildbeschreibung als IPTC-Caption.

Das plus eine laufende dreistellige Nummer ergibt dann nach Zusammenklicken im Umbenennen-Dialog (Dateien markieren, F2, unter "Metadaten" -> IPTC -> Caption) diesen Ausdruck:
[meta:Iptc.Application2.Caption]###

Eine dreistellige Nummer gibt es (als Projekt|scene001|Bild001 in HierarchicalSubject), diese soll zur Sortierung und wenn möglich als Dateiname genutzt werden. Wenn ich nur die Sortierung schnell und einfach hinbekommen kann (es sind ja immerhin 300 Bilder) ist das mit eigenem Namen und Counter super als zweitbeste Lösung.


Versteh ich das richtig, dass das Bild nach dem Umbenennen
Ereignisse_Caritas_Lebenshaus_Tag_der_offenen_Tür_Personen_Arbeit_Caritas_Hr._Horscher_Personen_Arbe it_Caritas_Fr._Rummel_ Autos_Oldtimer.jpg
heissen soll?

Fast, Mehr so etwas wie Projekt|scene001|Bild001.jpg im Idealfall (oder Projekt|scene001|Bild001 + OriginalName.jpg) der Rest sind weitere Tags von Darktable zum Wiederfinden Von Personen (z.B.). Benötigt wird hier aber nur das Projekt|scene001|bild001-Tag.


#schleife über alle bilder
for OLDNAME in *.jpg; do
# mit awk gewünschtes Tag extrahieren
NEWNAME=`awk '/"Hierarchical Subject/" {print $4}'`
# umbennen oder gleich auf gewünschte Grösse konvertieren
convert -size 1900x1080 $OLDNAME $NEWNAME.jpg
done

Das wäre die perfekte Lösung, wenn damit das Tag, welches mit "Projekt|" anfängt, vom gesamten Rest getrennt werden kann. Ich bin nur leider Kein Experte im Programmieren und auch mit diesem kleinen Code schon überfordert, wäre aber an einer genauen Beschreibung /Lösung interessiert.
 
Wenn ich nur die Sortierung schnell und einfach hinbekommen kann (es sind ja immerhin 300 Bilder) ist das mit eigenem Namen und Counter super als zweitbeste Lösung.

Wenn man mit der Tastatur umgehen kann, geht das ganz ohne Automatisierung locker(!) in einer halben Stunde.
Ich habe oft kleinere Bildermengen umzubenennen mit gleichbleibendem Text und fortlaufender Nummer und mache das unter 20 Stück meist von Hand. Geht schneller, als ein Spezialtool anzuwerfen und dort das Schema zu definieren.
 
Hier ist ein Stück Code, der mit Hilfe von Regular Expressions die Ausgabe von exiftool untersucht, die fett hervorgehobenen Zeichenfolgen extrahiert und zu einer neuen Zeichenfolge zusammenstellt.

  • Eines oder mehrere beliebige Zeichen am Anfang der Zeichenfolge
  • Einzelner Doppelpunkt (:)
  • Beliebige Anzahl Leerzeichen oder Tabulatoren
  • Beliebige Anzahl Zeichen
  • Einzelnes Pipe (|)
  • Zeichenfolge "scene" und eine beliebige Anzahl Ziffern
  • Einzelnes Pipe (|)
  • Zeichenfolge "bild" und eine beliebige Anzahl Ziffern
  • Beliebige Anzahl Zeichen

Der Code sollte in einem Texteditor in eine Datei kopiert, diese gespeichert und mit chmod 744 für den Benutzer ausführbar gemacht werden.

Code:
#!/bin/sh

for i in *.jpg
do
  j=`exiftool -HierarchicalSubject $i | grep 'Hierarchical Subject' | sed -e 's/^.\+:\s*\(.*\)|\(scene[0-9]*\)|\(bild[0-9]*\).*/\1_\2_\3/g'`.jpg
  mv $i $j
done

Die Dateien sollten am Ende Projekt_scene001_bild001.jpg o.ä. heißen. Der Code hat keinerlei Fehlerbehandlung, d.h. bei fehlendem Tag "Hierarchical Subject" heißt jede Datei .jpg. Damit der alte Dateiname am Ende des neuen Dateinamens steht, sollte im o.g. Code .jpg durch $i ersetzt werden. Was bei einer anderen Syntax von Hierarchical Subject passiert, wird man im Selbstversuch herausfinden müssen. ;-)

Viel Erfolg!
 
Zuletzt bearbeitet:
So, hier meine Version des scripts incl. alter Dateiname am Ende.
Gibt erst mal nur alten und neuen Namen aus, wenn alles klappt muss das "echo" durch cp oder mv ersetzt werden - oder das "convert" einkommentiert.
Soll da wirklich ein | pipe im Namen sien? Das macht doch nur Ärger!
Code:
#!/bin/sh
#schleife ueber alle bilder
for OLDNAME in *.jpg *.JPG; do
# mit awk gewünschtes Tag extrahieren
NEWNAME=`awk '/"Hierarchical Subject/" {print $4}' | tr -d "," | tr  "|" "_"`
# tr -d "," loescht die Kommas, tr  "|" "_" Pipe duch underscore ersetzt
echo $OLDNAME "  - " ${NEWNAME}-${OLDNAME}

#convert -size 1920x1080 $OLDNAME ${NEWNAME}-${OLDNAME}
done
 
Zuletzt bearbeitet:
Hey, danke für den Code :top:. Damit kann ich gut leben, eine andere Struktur von Hierarchical Subject kann ich ja ausschließen, wenn ich die Tags in der richtigen Reihenfolge zuweise (d.h. das 'Projekte|bla'-Tag einfach als letztes, kann ich mir ja jetzt am Anfang gleich so angewöhnen ;) ), dann klappt das Skript wunderbar.

VG

KPT
 
WERBUNG
Zurück
Oben Unten