Hallo, wer kennt das nicht, man kommt aus dem Urlaub und hat ein Haufen Bilder auf den verschiedensten Geräten. Ich bin da etwas faul und nutze Shotwell für eine ordentliche kalendarische Speicherung und Sichtung. Meine Kamera speichert auch RAW-Dateien und somit bearbeite ich einige davon in Darktable. Beide Programme nutzen jeweils eine SQLite Datei für die Datenhaltung. Und die Frage stellte sich mir, wie syncronisiere ist die Bewertungen? Eigentlich reich ja eine Datenübernahme von Shotwell nach Darktabel. Meine Lösung: Ich hab mir das SQLite installiert und das nachfolgende Script zusammen gebaut. Darktable und Shotwell müssen vorher geschlossen werden!
1 2 3 4 5 6 7 8 9 | ATTACH DATABASE '~/.local/share/shotwell/data/photo.db' as 'shot'; ATTACH DATABASE '~/.config/darktable/library.db' as 'dark'; update dark.images set flags = ((flags>>3)<<3)+(SELECT rating from shot.PhotoTable where dark.images.filename =substr(filename,instr(filename,'IMG'),length(filename))) where instr(filename,".CR2")>0; DETACH DATABASE 'shot'; DETACH DATABASE 'dark'; .exit |
Ablauf:
Öffnen der Datenbanken, ich hab die Standard-Einrichtungen belassen
In der Darktable „flags“ sind die Bewertungen in den letzetn 3 Bit enthalten. Durch verschieben werden diese auf 0 gesetzt und dann mit dem Wert aus der Tabelle „rating“ von Shotwell ersetzt.
Danach Dabenbank schließen
Ein paar spezielle Einschränkungen, hier können andere Werte notwendig werden:
IMG – ist der Anfang der Dateinamen aus der Kamera, Shotwell speichert den ganzen Pfad und somit muss man den Dateinamen extrahieren.
.CR2 – ist die entsprechende Endung ( bei mir eine Canon Kamera), ich will ja nur die RAW Dateien bearbeiten.
Die Nutzung ist wie üblich auf eigene Gefahr.