digiKam/Håndtering af Batch-kø og script

From KDE UserBase Wiki
Revision as of 10:31, 13 July 2011 by Claus chr (talk | contribs) (Importing a new version from external source)
Other languages:

Behandl fotos med digiKams batch-kø-håndtering og et Bash-script

Fra Dmitri Popovs blog, 11. juli 2011

En af digiKams mindre kendte funktioner er muligheden for at koble scripts til bekendtgørelser. Det kan umiddelbart forekomme at være et ret obskur funktion, men den kan bruges til ret smarte ting. Lad os sige, at du vil have en portfolio af udvalgte fotos på en mobil enhed. Det er ikke særlig praktisk at skulle ændre mange billeders til en bestemt størrelse, som gør det let at vise dem på den mobile enhed, og så overføre de behandlede billeder fra digiKam til enheden manuelt. Det er her muligheden for at udløse et script via bekendtgørelser bliver praktisk. Du kan knytte et simpelt Bash-script til Bekendtgørelsen "Batch-kø gennemført", sådan at det udføres automatisk, når værktøjet Håndtering af Batch-kø er færdig med behandling af fotoene.

Bash-scriptet er faktisk meget simpelt. Det bruger værktøjet rsync til at kopiere de behandlede fotos fra den oprindelige mappe (i dette tilfælde er det /home/user/Photos/Processed) til mappen /DCIM/Camera på det monterede SD-kort:

#!/bin/bash
rsync -avz --delete /home/user/Photos/Processed /media/0CFA-5602/DCIM/Camera

Indsæt ovenstående kode i en tom tekstfil og gem det som postprocess.sh (glem ikke at erstatte stien i eksemplet med de faktiske stier til kilde- og målmapperne). Gør scriptet kørbart ved brug af kommandoen chmod o+x postprocess.sh.



I digiKam åbner du menuen Indstillinger -> Indstil bekendtgørelser... og vælger punktet Batch-kø gennemført. Aktivér tilvalget Kør kommando og skriv stien til scriptet postprocess.sh i de tilhørende felt. Som du nok har gættet, så knytter dette scriptet til bekendtgørelsen, sådan at scriptet køres lige så snart batch-processen er færdig.

Next, create a tag (e.g.,transfer) in digiKam and assign it to the photos you want to transfer to the mobile device. Alternatively, you can use a specific color label for that. Use then the Filter right sidebar to display the tagged or labelled photos, select them, and press Ctrl + B (or choose Tools -> Batch Queue Manager) to add them to a new batch queue. In the Queue Settings section, click on the Target tab and select the Photos -> Processed sub-album. Under the Base Tools tab, double-click on the Transform -> Resize tool to add it to the Assigned Tools section. In the Tool Settings pane, specify the desired length. You can choose between several presets, or enable the Use Custom Length option and specify the desired length.

Hit then the Run button, and once the batch operation is completed, the assigned Bash script copies the resized photos to the mounted SD card.

You can tweak the script to perform other post-processing actions, too. For example, if you use the llgal command-line tool to generate static HTML photo galleries, you can tweak the script to add the processed photos to an HTML album. The script may look something like this:

cd /home/user/Photos/Processed
llgal --exif --li -L --sx 800 --sy 600

In other words, you can do all kinds of clever tricks by linking scripts to notifications.