staging.inyokaproject.org

Fotos sortieren nach Blitz und kein Blitz

Status: Ungelöst | Ubuntu-Version: Xubuntu 20.04 (Focal Fossa)
Antworten |

Muckel1986

Avatar von Muckel1986

Anmeldungsdatum:
31. Mai 2009

Beiträge: 198

Guten Abend zusammen,

habe ein Verzeichnis mit ca 300 Fotos. Welche sind mit Blitz fotografiert wurden und die anderen ohne.

Gibt es eine Möglichkeit, sie danach zu kopieren? Also alle mit Blitz in Verzeichnis A und alle ohne Blitz in Verzeichnis B.

Es soll wohl mit Exiftool gehen. Leider habe ich davon garkeine Ahnung und bin auch der man Panges nicht so mächtig.

Daher würde ich mich sehr freuen, wenn mir jemand helfen kann.

Liebe Grüße! Muckel

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Hast Du mal einen Hinweis/Link dazu, wie das mit Exiftool gehen soll? Ich finde da keine Infos, ob eine Bild mit oder ohne Blitz aufgenommen wurde.

EDIT: Ich hatte erst bei einem Bild geschaut, wo die Information wohl nicht mit enthalten war.

Als erster Ansatz ginge mal so etwas (ohne Gewähr, dass es wirklich richtig funktioniert):

mkdir B; for i in *.jpg; do if [[ $(exiftool $i | awk -F':' '/^Flash/ {print $2}') == " No Flash" ]]; then mv $i B; fi ; done

Das würde alle jpgs, die ohne Blitz aufgenommen wurden, in der Ordner B verschieben. Wäre die Frage, ob die Information Flash bei allen Bildern enthalten ist.

Falls ja, könntest Du einfach einfach noch ein else mit dazupacken:

mkdir A; mkdir B; for i in *.jpg; do if [[ $(exiftool $i | awk -F':' '/^Flash/ {print $2}') == " No Flash" ]]; then mv $i B; else mv $i A; fi ; done

Geht bestimmt noch wesentlich eleganter, wenn man sich mit den exiftools auskennt... Und So geht das natürlich nur, wenn alle Bilder auch die Endung .jpg haben.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Es gibt ein dafür vorgesehenes Feld: https://exiftool.org/TagNames/EXIF.html#Flash - mit dem exiftool sieht das dann bei einer Kamera mit integriertem Blitz z.B. so aus (die Ausgabe kann variieren, je nachdem was die Kamera da an Informationen in die Bilder packt):

$ exiftool -Flash *.JPG
======== P1090395.JPG
Flash                           : On, Fired
======== P1090397.JPG
Flash                           : Off, Did not fire
======== P1090594.JPG
Flash                           : Auto, Fired
======== P1090595.JPG
Flash                           : Auto, Did not fire
======== P1090597.JPG
Flash                           : Auto, Fired, Red-eye reduction
======== P1090599.JPG
Flash                           : Auto, Did not fire
    9 image files read 

Man könnte also z.B. sowas machen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#!/bin/bash
src_dir="/pfad/zum/quellverzeichnis"
with_flash_dir="/pfad/zum/verzeichnis_mit_blitz"
no_flash_dir="/pfad/zum/verzeichnis_ohne_blitz"


shopt -s extglob
for img in "${src_dir}/"*.@(jpg|jpeg|JPG|JPEG)
do
    [ -f "$img" ] || continue
    if exiftool -Flash "$img" | grep -q "Fired"
    then
        target="${with_flash_dir}/${img}"
    else
        target="${no_flash_dir}/${img}"
    fi
    cp "$img" "$target"
done
Antworten |