Picture Organizer is a tool to make it easier to manage large numbers of images, without using databases, based on a good folder structure. When importing photos over the years with different programs and program versions, little uniformity in the directory structure remains. To make the folder structure uniform in an image folder, an application has been developed that places all images in subfolders depending on file type and recording date: DestinationDir\<FileTypeDir>\YYY0-YYY9\YYYY\YYYY-MM-DD\<FileName>. jpg. There is a choice to move or copy the files to the new location. If duplicate file names occur, these are then placed in DestinationDir\duplicates\<{GUID}>\<sequence#>-<original filename>.
- <{GUID}> globally unique identifier
- <sequential number> ascending number of 4 positions on the left, supplemented with zeros
The recording date is determined based on:
- EXIF information
- With WhatsApp images without EXIF info from the file name
- File creation date
<FileTypeDir> is determined by the file extension according to the table below:
| File type | Will be placed in | ||
|---|---|---|---|
| .jpeg .JPG .tif .tiff | \image* | ||
| .afphoto .CR2 .CR3 .CRW .dng .psd | \raw* | ||
| .bmp .png | \web* | ||
| .MOV .mp4 | \video* | ||
| .info .ini .json .mxc3 .pp2 .pp3 .THM .url .xml .xmp | \remove* | ||
| \noexif* | |||
| .AAE .bib .BridgeSort .CTG .dat .docx .pdf | \other* |
*These can be changed in the Registry, see table "Registry entrances"
The EXIF information is obtained with EXIFTool, a powerful command line application that can read and write Metadata from images, among other things. For more information see exiftool Application Documentation
To use EXIFTool from Delphi we used ideas from:
- CreateProcessW function (processthreadsapi.h) - Win32 apps | Microsoft Learn
- Running commandline app and capturing output - Windows API - Delphi-PRAXiS [en] (delphipraxis.net)
- Calling ExifTool from Delphi
The programming environment used is the Community Edition van Delphi 12.1
ERROR: Content Element with uid "43" and type "tx_codehighlight_codesnippet" has no rendering definition!