master | develop |
---|---|
This is a python script to automatically sort photos from a Canon camera. In principle, this should also work with other directories containing images, but it is primarily done for the Canon Powershot G7 X's image structure.
The script assumes a directory structure like this;
- DCIM
-- images&videos_1
-- images&videos_2
-- ...
-- images&videos_n
-- CANONMSC (optional, will be deleted)
First, it will create a new directory structure like so:
- DCIM
-- Images
--- Raw
--- High Quality
--- Low Quality
-- Videos
and move all relevant image and video files in the directories.
- Raw files (.CR2) will be put into the
Images/Raw
directory - JPG files will be put into the
Images/High Quality
directory - MP4 files will be put into the
Videos
directory
If Raw files exist without a corresponding JPG file, the .CR2 file's
preview image will be extracted and equiped with the same exif data as
the .CR2 file and stored in the Images/High Quality
folder.
All image files will be renamed according to their exif timestamp. The
file names will follow the format YY-MM-DD---hh-mm--ss
All High Quality JPG files are converted down to ~1080p (1920x1080 / 1080x1920)
and put into the Images/Low Quality
folder
If more than one directory is passed as an argument, These directories are first
processed with Steps 1-4 indivdually and then merged. The resulting folder will
be called Merged
Just call the script using
photo-sorter <directory 1> <directory 2> ... <directory n>
.
This will process each directory individually and then merge them together.
The following commands need to be installed and in the system's PATH:
exiftool
jpegoptim
convert
(Part ofimagemagick
)
To install these on Arch Linux, run the following command:
sudo pacman -S imagemagick jpegoptim perl-image-exiftool
Installation on other distributions may differ.