digicam-tools

This package contains two small tools for handling digital photographs: kamd and fotocp. The former is used to import images from digital cameras, while the latter is to select images to copy them or burn them on CD, for example to make hardcopies. The main goal are ease of use and a slim and intuitive UI which can also be used by people with limited computer skills. The programs are made as an alternative to image organisers, for people who find image organisers too bloated, who don't need all the features and/or are confused by the complicated UI, or for users who don't want programs to snatch and organise everything for them which they prefer to organise themselves.

Download

Contents of this document:

kamd

kamd is a slim program to easily import images from a digital camera and sort them into directories according to user input. The pictures are grouped together according to the date at which they were taken (this information is extracted from the exiv headers). The program resides in the system tray and can pop-up a dialog when the camera is plugged if required.

Images will be moved to [destpath_base]/[year]/[destpath_image]

Example: C:\Users\Stephan\Images\2015\Winter, where

[destpath_base] (in configuration) = "${HOME}/Images"
[destpath_image] (in configuration) = "%1"
user description (from UI) = "Winter"

The pictures are also renamed, the new filename consists of the date and time at which the picture was taken. If kamd was configured with simple=false, then an offset can be added to the exiv time (this is useful when the camera clock runs on UTC, but the filenames should carry the local time).

Configuration

There is a configuration dialog where you can configure the most important aspects. The complete settings can be changed in the configuration file / registry:

Linux: ${HOME}/.config/KSZ/kamd.conf
Windows: HKEY_CURRENT_USER\Software\KSZ\kamd in the registry

KeyDescriptionExample valueDialog
destpath_base Destination base path for images ${HOME}/Bilder
D:\Bilder
yes
destpath_image Destination path for images, %1 is replaced by the input given by the user in the UI %1 no
mountpoint List of default camera locations to look for images (used if no camera plug-in notification) /media/sdcard
W:, X:
yes
campath Sub-path on camera to look for images DCIM no
keep_on_camera If true, copy images; if false, move images true yes
dateformat Format for image names yyyy.MM.dd-hhmmss no
image_viewer Program to launch when the user clicks on "view images" gwenview no
images File types to treat as images *.jpg, *.dng no
movies File types to treat as movies *.mov no
simple Use simplified UI. Hides the timezone group. false yes

Notification of camera plug in/out via DBus (Linux only)

camera connect:
qdbus org.KSZ.kamd / connect [mountpoint] [identifier]
camera disconnect:
qdbus org.KSZ.kamd / disconnect

Ways to notify:

  1. Use a udev rule which runs a script to notify the application. See kamd.udev.rules and kamd-notify.sh. Note that the qdbus command must be run under the same user ID as the one running the UI, update the script accordingly.
  2. Use KDE DeviceNotifier (Plasma Desktop): Select "Execute command", put in the commands mentioned above and use %f as mount point and %i as device identifier.

fotocp

fotocp is dedicated to copying images in order to make hardcopies. It shows each image and allows to define how many copies to make while viewing (when several copies are requested, multiple copies of the file are created and the filename modified by adding a number at the end). When finished, it copies them all to a USB memory stick or burns them onto a CD to take them to the shop.


Configuration:

Linux: ${HOME}/.config/KSZ/fotocp.conf
Windows: HKEY_CURRENT_USER\Software\KSZ\fotocp in the registry

Config keys:

KeyDescriptionExample value
simple Use simplified UI. If true, "copy to folder" is disabled and you can only burn on CD. false

Compilation

Tested with gcc on Linux and MSVC 2013 on Windows.

Requirements:

Linux

All dependencies can be installed from the package manager.

To build a Debian/Ubuntu package: edit CMakeLists.txt and adjust the path to qtsolutions, check the kamd udev rule and script, then run

dpkg-buildpackage -rfakeroot

To compile:

mkdir build
(cd build && cmake ..)
make -C build

Windows / MSVC

Use cmake to create a Visual Studio solution: Create a build folder, open a console and run something like

cmake .. -G "Visual Studio 12 2013 Win64" -DBOOST_ROOT=path_to_boost -DEXIV2_INCLUDE_DIR=path_to_exiv2_include -DEXIV2_LIBRARY_DIR=path_to_exiv2_libs

Copyright

© 2013-2017 Klaus Schneider-Zapp
License: GNU General Public License (GPL) version 3