Photini Documentation Release 2017.6.0.dev819

Jim Easterbrook

Jun 02, 2017

Contents

1 Introduction 3 1.1 Features...... 4 1.2 Dependencies...... 5 1.3 Getting help...... 6 1.4 Internationalisation...... 6 1.5 Licence...... 6

2 Installation 9 2.1 All-in-one installer (Windows)...... 9 2.2 Package manager (some distributions)...... 10 2.3 Dependencies package (some Linux distributions)...... 10 2.4 Piecemeal installation...... 11 2.5 Essential dependencies...... 11 2.6 Installing Photini...... 12 2.7 Running Photini...... 14 2.8 Photini documentation...... 14

3 User manual 17 3.1 Image selector...... 17 3.2 Descriptive metadata...... 23 3.3 Technical metadata...... 29 3.4 Geotagging...... 39 3.5 Flickr uploader...... 53 3.6 Google Photos / Picasa uploader...... 60 3.7 Facebook uploader...... 66 3.8 Image importer...... 77 3.9 Configuration...... 82 3.10 Tag reference...... 84

4 Typical workflow 89 4.1 Make a backup copy...... 89 4.2 Load images...... 89 4.3 Set text metadata...... 90 4.4 Save your work so far...... 90 4.5 Set geolocation...... 90

5 “Localisation” 91

i 5.1 Join Transifex...... 92 5.2 Translating Photini...... 92 5.3 Testing your translations...... 93

6 Miscellaneous 95 6.1 Change Log...... 95 6.2 GNU General Public License...... 98 6.3 GNU Free Documentation License...... 110

7 Further reading 119

ii Photini Documentation, Release 2017.6.0.dev819

Welcome to the documentation of Photini, an easy to use photograph metadata editor. For a quick introduction to Photini and its features I suggest you read the introduction. More detail about its capabilities can be found in the user manual.

Contents 1 Photini Documentation, Release 2017.6.0.dev819

2 Contents CHAPTER 1

Introduction

A free, easy to use, digital photograph metadata (EXIF, IPTC, XMP) editing application. “Metadata” is said to mean “data about data”. In the context of digital photographs this means information that isn’t essential in order to display the image, but tells you something about it. For example a title and description of the scene or the date & time and the GPS coordinates of the camera’s position when the picture was taken. “[Photini] doesn’t try to be an all-singing, all-dancing image management powerhouse - it just lets you add information to photos, quickly and easily.” — magazine, January 2013 Why is it called Photini? Read my blog post on how I chose a name.

3 Photini Documentation, Release 2017.6.0.dev819

Features

• Easy to use graphical interface. • Set photo title, description, keywords, copyright and creator fields. • Spell checking of some fields (optional). • Can set metadata for multiple images simultaneously. • Can adjust picture date & time and time zone (of multiple images simultaneously). • Reads EXIF, IPTC and XMP metadata, writes all three to maximise compatibility with other software. • Writes metadata to image files or to XMP “sidecar” files. • Can import photographs from many digital cameras. • Upload to Flickr and/or Facebook and/or Google Photos with reuse of metadata.

4 Chapter 1. Introduction Photini Documentation, Release 2017.6.0.dev819

• Geotagging - search map to find named places. • Choice of map providers - instantly switch to compare details. • Drag and drop images on to map to set GPS location. • Edit coordinates if required, or clear to unset GPS data. • Suggestions for further development welcome.

Dependencies

An “all in one” installer for Windows is available that installs Photini and all its dependencies. Users of other operating systems will need to install the following: • Python, version 2.6+ (including Python 3): http://python.org/ • PyQt, version 4 or 5: http://www.riverbankcomputing.co.uk/software/pyqt/intro • six, version 1.5+: https://pypi.python.org/pypi/six/ • appdirs, version 1.3+: http://pypi.python.org/pypi/appdirs/ • gexiv2 (GObject Exiv2 wrapper), version 0.5+: https://wiki.gnome.org/Projects/gexiv2

1.2. Dependencies 5 Photini Documentation, Release 2017.6.0.dev819

• Python GObject bindings: – PyGObject: https://wiki.gnome.org/Projects/PyGObject or – pgi: https://pypi.python.org/pypi/pgi/ For details of how to download and install these, please see the installation documentation.

Getting help

If you encounter any problems installing or running Photini, please email [email protected] and I’ll respond as soon as I can. If you discover a bug and have a GitHub account then please file a bug report on the GitHub “issues” page.

Internationalisation

Work has begun on providing Photini in multiple languages. I rely on users to do the translation, as I am not fluent in any language other than English. If you’d like to help, please join the Photini team on Transifex. For more details, see the localisation documentation.

Licence

Photini - a simple photo metadata editor. http://github.com/jim-easterbrook/Photini Copyright (C) 2012-17 Jim Easterbrook [email protected]

German translation by Jan Rimmek Spanish translation by Esteban Martinena & Cristos Ruiz Polish translation by “itdawid”

This program is : you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see http: //www.gnu.org/licenses/.

Service terms and conditions

Use of the Google map tab is subject to the Google Maps Terms of Use and Google Privacy Policy. Use of the Bing map tab is subject to the Microsoft Bing Maps Terms of Use and Microsoft Privacy Statement. The Flickr upload tab uses the Flickr API but is not endorsed or certified by Flickr.

6 Chapter 1. Introduction Photini Documentation, Release 2017.6.0.dev819

Privacy statement

Photini does not directly gather any information from its users, but the online services it can use (maps, Flickr, Face- book, and Google Photos) may do so. You should read these services’ privacy policies before using them. Photini stores user preferences in a text file on the user’s computer. This file can be found in $HOME/.config/ photini/ (Linux) or %USERPROFILE%\AppData\Local\photini\ (Windows). OAuth access tokens for Flickr, Facebook, and Google Photos are securely stored on the user’s computer using Python keyring.

Documentation licence

Permission is granted to copy, distribute and/or modify the Photini documentation under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the documentation section entitled “GNU Free Documentation License”.

1.5. Licence 7 Photini Documentation, Release 2017.6.0.dev819

8 Chapter 1. Introduction CHAPTER 2

Installation

There are three ways to install Photini. On Windows you can use an all-in-one installer. On some Linux distributions you might be able to use your package manager to install everything, or you may be able to use the package manager to install Photini’s dependencies and pip to install Photini. On other platforms you need to install several dependencies before installing Photini.

All-in-one installer (Windows)

The Windows installer creates a standalone Python installation with all the dependencies needed to run Photini. The standalone Python interpreter is only used to run Photini, and should not conflict with any other Python version installed on your computer. You can download the latest Windows installer from the GitHub releases page. It’s the file photini-win32-setup.exe included in the “downloads” section of the latest release. The installer is suitable for 32 bit and 64 bit Windows, and should work on any version since Windows XP. The installer should finish by running the Photini program. If this works then you have successfully installed Photini and can ignore the rest of these instructions. If not, see the troubleshooting section below.

Upgrading all-in-one installation

Before upgrading Photini you should check the change log to see if a new installer has been released since you last downloaded it. If it hasn’t, then you can use the “upgrade Photini” command in the start menu. This needs to be run as administrator. Click on the “Start” icon, then select “All Programs”, then “Photini”, then right-click on “upgrade Photini” and choose “Run as administrator” from the context menu. If there is a new installer available then you should download it and use it to create a fresh installation, after using the “Programs and Features” control panel item to uninstall the old version of Photini.

9 Photini Documentation, Release 2017.6.0.dev819

Verifying the Windows installer

The Windows installer is digitally signed using a “self-signed Certificate Authority”. If you add my certificate to your computer you will get fewer security warnings when you install Photini. You can download the certificate file jim_easterbrook_CA.cer from the GitHub releases page and install it by running cmd.exe and issuing the following command: certutil-user-addstore Root jim_easterbrook_CA.cer

If you want to check the validity of the certificate file, you can do so using GnuPG. The file jim_easterbrook_CA.cer.asc contains a digital signature that can be checked with my public keys 0x959AF9B6 or 0x4748AD59 (a subkey of 0x2036BBF6). These keys’ fingerprints are 05A7 0CD9 380D 8EAA 97AE FD3F 56D7 01F5 959A F9B6 and 45A2 B27B AC1D 12B2 5C33 655C 7CF4 E704 2036 BBF6. If the above means nothing to you, don’t worry about it. The security warnings when you install Photini can safely be ignored.

Package manager (some Linux distributions)

Note: These Linux packages are maintained by other people and may not install the latest version of Photini. You may also need to install missing dependencies, as described below.

Ubuntu and derived systems

Dariusz Duma (https://launchpad.net/~dhor) has added Photini to his PPA (personal package archive). See the instruc- tions at http://linuxg.net/how-to-install-photini-15-01-1-on-ubuntu-14-10-ubuntu-14-04-and-derivative-systems/. Pascal Mons (https://launchpad.net/~anton+) also has a PPA with many photo applications, including Photini. See https://launchpad.net/~anton+/+archive/ubuntu/photo-video-apps/.

OpenSUSE 42.2 or newer

Photini is available from the Packman community repository. It can be installed by clicking on this link: http:// packman.links2linux.org/install/Photini

OpenSUSE and Fedora

Togan Muftuoglu (https://build.opensuse.org/user/show/toganm) has created a python-photini package. See https: //build.opensuse.org/package/show/home:toganm:photography/python-photini for more information.

Dependencies package (some Linux distributions)

This is the easiest way to install Photini’s dependencies and the latest release of Photini. You use your package manager to install the non-Python dependencies, then use pip to install the latest versions of all the Python packages.

10 Chapter 2. Installation Photini Documentation, Release 2017.6.0.dev819

OpenSUSE (and other Red Hat derived distributions?)

The Photini project includes a .spec file that lists the required dependencies. Download the .spec file and use it to build a .rpm file:

wget https://raw.githubusercontent.com/jim-easterbrook/Photini/master/src/linux/

˓→python3-photini-meta.spec rpmbuild-ba python3-photini-meta.spec

Note where rpmbuild wrote its output file, then install that file. For example:

sudo zypper install/home/jim/rpmbuild/RPMS/noarch/python3-photini-meta-1-0.noarch.rpm

Now you can install Photini using pip as described below.

Piecemeal installation

This is the hardest way to install Photini, mainly because of the libraries required to access photographs’ metadata. The installation process is different for Windows, Linux and MacOS, and there are variations with different versions of those operating systems. If you run into problems, please let me know (email [email protected]) and once we’ve worked out what needs to be done I’ll be able to improve these instructions.

Essential dependencies

These are all required for Photini to be usable.

Python

Photini should work with all versions of Python from 2.6 onwards. Python may already be installed on your computer. To find out, open a terminal window (Windows users run cmd. exe) and try running python by typing this command:

python-V

If Python is installed this should show you the version number. Linux users should use their system’s package manager to install Python. Windows and MacOS users can download an installer from https://www.python.org/downloads/. Windows users should install the 32 bit version of Python, even on a 64 bit machine. This is because some of the required libraries are not available in 64 bit builds.

PyQt

The PyQt application framework provides the graphical user interface elements used by Photini. Version 4 or 5 is required. You can check if PyQt is already installed with one of these commands:

python-c"import PyQt5"

or

2.4. Piecemeal installation 11 Photini Documentation, Release 2017.6.0.dev819

python-c"import PyQt4"

If PyQt is installed then one of these will run without generating any error message. Linux users should use their package manager to install python-qt4 or python-qt5. On some Linux systems you may also need to install the Qt WebKit package, e.g. qt5-webkit. Windows users can download a binary installer from http://www.riverbankcomputing.co.uk/software/pyqt/download (make sure you choose the installer for your version of Python). gexiv2

Several libraries are needed to access photograph metadata from Python. Exiv2 is the core “C” library. gexiv2 is a GObject wrapper around the Exiv2 library. It has extra “introspection bindings” that allow it to be used by other languages. PyGObject (also known as PyGI) provides a Python interface to the introspection bindings of the GObject wrapper around the Exiv2 library. Got that? Linux users should use their package manager to install these, but note that the package names may not be obvious. The core gexiv2 wrapper is probably called libgexiv2 or similar, but on my OpenSUSE system the introspection bind- ings are called typelib-1_0-GExiv2-0_4 whereas on Ubuntu systems they are called gir1.2-gexiv2-0.4. The PyGObject interface probably appears in the package manager as python-gobject or python-gi. Windows users should download and run the latest “pygi-aio” (PyGI all-in-one) installer from http://sourceforge.net/ projects/pygobjectwin32/files/. You should install the “Base packages” & “GExiv2” packages, and the “Enchant- extra-dicts” non-GNOME library. pip

The remaining dependencies are Python packages that are easily installed with pip. You may already have pip installed on your computer. You can check with the pip list command: pip list

Linux users should use their package manager to install python-pip. Windows and MacOS users can use the installer from https://pip.pypa.io/en/latest/installing.html#install-pip. All users should then upgrade pip.

Installing Photini

The easiest way to install the latest release of Photini is with the pip command: sudo pip install photini

This will install Photini and any Python packages it requires. You can also use pip to install the optional dependencies when you install Photini: sudo pip install photini[flickr,google,facebook,importer,spelling]

If you prefer to install the development version you can use git to clone the GitHub repository or download it as a zip file and then unpack it. Either way, you then need to build and install Photini: python setup.py build sudo python setup.py install

You will also need to install the remaining Python packages.

12 Chapter 2. Installation Photini Documentation, Release 2017.6.0.dev819

Essential Python packages

There are two small Python packages needed to run Photini. They can be installed with one command: sudo pip install six appdirs

Note that sudo is not required on Windows, or if you have root privileges. In this case you just run pip install six appdirs.

Optional Python packages

Some of Photini’s features are optional - if you don’t install these libraries Photini will work but the relevant feature will not be available.

Spelling

PyEnchant is a Python interface to the Enchant spell-checking library. If it is installed then spell checking is available for some of Photini’s text entry fields. Use pip to install it: sudo pip install pyenchant

Flickr

Photini’s Flickr uploader requires python-flickrapi and python-keyring. These are easily installed with pip: sudo pip install flickrapi keyring

Google Photos / Picasa

The Google Photos / Picasa uploader requires requests, requests-oauthlib and python-keyring. These are also installed with pip: sudo pip install requests requests-oauthlib keyring

Facebook

The Facebook uploader requires requests, requests-oauthlib, requests-toolbelt and python-keyring. These are also installed with pip: sudo pip install requests requests-oauthlib requests-toolbelt keyring

The Optimise image size option requires the Python Imaging Library, which is also installed with pip: sudo pip install Pillow

2.6. Installing Photini 13 Photini Documentation, Release 2017.6.0.dev819

Importer

Photini can import pictures from any directory on your computer (e.g. a memory card) but on Linux and MacOS systems it can also import directly from a camera. This requires libgphoto2, which is often already installed, and its python-gphoto2 Python bindings, version 0.10 or greater:

sudo pip install-v gphoto2

Installation of python-gphoto2 will require the “development headers” versions of Python and libgphoto2. You should be able to install these with your system package manager.

pgi

If you find the PyGObject bindings to be unreliable (I found they sometimes crash when using Python 3) you can use pgi instead:

sudo pip install pgi

Note that pgi may also have problems. If you need to go back to using PyGObject you should uninstall pgi:

sudo pip uninstall pgi

Running Photini

If the installation has been successful you should be able to run Photini from the “Start” menu (Windows) or application launcher (Linux).

Troubleshooting

If Photini fails to run for some reason you may be able to find out why by trying to run it in a command window. On Windows you need to open the folder where Photini is installed (probably C:\Program Files (x86)\Photini) and run the WinPython Command Prompt.exe program. On Linux you can run any ter- minal or console program. Start the Photini program as follows. If it fails to run you should get some diagnostic information:

python-m photini.editor

If you need more help, please email [email protected]. It would probably be helpful to copy any diagnostic messages into your email. If Photini runs but you have some other problem with it then I would find it useful to know what version you are running. You can find out with the --version option:

python-m photini.editor--version

Photini documentation

If you would like to have a local copy of the Photini documentation, and have downloaded or cloned the source files, you can install Sphinx and use setup.py to “compile” the documentation:

14 Chapter 2. Installation Photini Documentation, Release 2017.6.0.dev819

sudo pip install sphinx python-B setup.py build_sphinx

Open doc/html/index.html with a web browser to read the local documentation.

2.8. Photini documentation 15 Photini Documentation, Release 2017.6.0.dev819

16 Chapter 2. Installation CHAPTER 3

User manual

This manual attempts to cover every part of Photini in detail, but still be usable as a tutorial. I suggest you read the image selector and descriptive metadata sections first, then read other sections when you start using the relevant features.

Image selector

When you start the Photini editor it displays a GUI (graphical user interface) as shown below. The exact appearance will depend on your and window manager preferences, but the same functional elements should be present.

17 Photini Documentation, Release 2017.6.0.dev819

The Photini editor GUI has two main areas. The upper part has a set of tabs to select different functions. The lower part is an image selector that is common to all the tabs. In between the two is a divider that can be dragged with the mouse to change the relative sizes of the two parts. The overall size of the window can also be changed by dragging its edges or corners with the mouse.

18 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Now load some images using the File menu Open images item (or its keyboard shortcut Ctrl+O) or by “drag and drop” from a file manager window. The loaded images are displayed as thumbnail images in the image selector part of the GUI. Note that the thumbnail size can be changed with the slider control just beneath the thumbnail display area. The images can also be sorted by name or date by clicking on the appropriate button.

3.1. Image selector 19 Photini Documentation, Release 2017.6.0.dev819

Clicking on any thumbnail selects that image. The selected image is highlighted by a red border. Double clicking on a thumbnail should display the full size image, using your default image viewing application.

20 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Multiple images can be selected by holding down the ‘shift’ key while clicking on a second image.

3.1. Image selector 21 Photini Documentation, Release 2017.6.0.dev819

To select multiple images that are not adjacent, hold down the ‘control’ key while clicking on the images.

22 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

The keyboard shortcut Ctrl+A selects all the loaded images.

Descriptive metadata

The Descriptive metadata tab (keyboard shortcut Alt+D) allows you to edit basic information about your photographs, such as the title and description.

3.2. Descriptive metadata 23 Photini Documentation, Release 2017.6.0.dev819

The first thing I usually do with a new set of photographs is to set the copyright and creator/artist metadata. Select all the images (keyboard shortcut Ctrl+A) then click on the Auto button next to the Copyright text entry box. The first time you do this Photini asks you to provide the name of the copyright holder. This should probably be your name, but could be the name of a company. Type in the name and click OK. The Auto button generates a standard copyright notice, but if you prefer a different wording you can edit the text manually.

24 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Next click on the Creator / Artist field’s Auto button. Now Photini will ask for the name of the creator. Edit the name if required, then click OK. Note that all the image thumbnails now have a warning symbol () displayed next to them. This shows that they have unsaved metadata edits. The File menu Save images with new data item (keyboard shortcut Ctrl+S) saves your edits and clears the warning symbols, as shown below. I do this frequently to avoid losing any of my work.

3.2. Descriptive metadata 25 Photini Documentation, Release 2017.6.0.dev819

Next I set the title. Select all the images that should have the same title, then type the title in the Title / Object name text editing box. Note that the title (and keywords) are stored in XMP but not in Exif, so may not be visible to software that only handles Exif metadata (see Tag reference for more detail). You may prefer to leave the title and keywords fields blank. The Title / Object name field has an optional spell checker, enabled with the Spelling menu. The word “Château-Gontier” is not in the British English dictionary, as indicated by the red underlining. Right-clicking on a misspelled word shows a list of suggested alternatives, one of which can be chosen by clicking on it.

26 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Now you can add more detail in the Description / Caption box. There are probably only one or two pho- tographs that share the same description, so select those images first.

3.2. Descriptive metadata 27 Photini Documentation, Release 2017.6.0.dev819

Finally you can set a list of keywords for the image by typing them in the Keywords box. Keywords should be separated by semi-colon (;) characters. The drop-down list can be used to select keywords from the ones you use most often.

28 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Technical metadata

The Technical metadata tab (keyboard shortcut Alt+T) allows you to edit ‘technical’ information about your photographs, such as the date & time they were taken and the lens that was used (if your camera has interchangable lenses). Usually you do not need to edit any of this data, but I like to set the time zone of all my pictures, especially when I’m holidaying in another country.

3.3. Technical metadata 29 Photini Documentation, Release 2017.6.0.dev819

The GUI shows three date/time entries - taken, digitised and modified. These are often the same, and are linked by the link ... check boxes. These allow you to change all three when you change the taken date/time. You may wish to unlink the three entries and adjust the dates or times separately. For example, you could use the modified entry to note when you have edited the metadata with Photini. If you scan some old photographs you should set the taken entry to when the photographs were taken and the digitised entry to when you scanned them. The date can be picked from a calendar widget that pops up when you click on the down arrow in a date/time entry. Clicking on any of the numbers allows them to be adjusted with your keyboard up & down arrow keys. You can also double click on any of the numbers to select it and type a new value in directly.

30 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

To the right of each date/time is a widget to adjust the time zone. The time a photograph was taken is assumed to be “local time”. The time zone records how many hours & minutes offset from UTC (or GMT) the local time zone was when the photograph was taken, digitised or modified.

3.3. Technical metadata 31 Photini Documentation, Release 2017.6.0.dev819

The Adjust times field allows a constant offset to be applied to the time stamps of several pictures at once. This can be useful if you are in a different time zone to your camera’s setting or you forgot to set your camera’s clock before a day’s shooting! Set the required offset hours, minutes & seconds, then use the + or - button to add or subtract that amount from each selected picture’s timestamp.

32 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

You can also offset the time zone. In this example my camera clock was set to British Summer Time (+01:00) but records timestamps without zone information. I was on holiday in mainland Europe (+02:00) so I need to add 1 hour to each timestamp and 2 hours to the time zone. The Adjust times values are stored in Photini’s configuration file, so each day’s photos can be given the same offset with just one button click.

3.3. Technical metadata 33 Photini Documentation, Release 2017.6.0.dev819

Below each date/time is a slider that allows you to set the precision. At its maximum value the time is shown to a precision of 1 millisecond. Cameras that can take more than one photograph per second need this precision! Moving the slider to the left removes parts of the date & time. For example, you may know the date when an old photograph was taken but not the time. You might only know the year it was taken in. Setting the precision allows you to record this uncertainty. The Orientation value sets the required rotation or reflection to display the image. Note that this does not actually transform the image data. Image display programs should rotate or reflect the image according to the orientation metadata, but not all of them do. The Lens model dropdown list allows you to change the lens specification stored in the image metadata. This should usually be left blank for cameras with non-removable lenses, but may be useful if you have an SLR that you use with lenses that its electronics doesn’t recognise. Lens details already in a photograph’s metadata are automatically added to the list when the photograph is loaded. If your camera doesn’t record the details of some lenses you can add them by selecting from the dropdown list.

34 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

This brings up a dialog box for you to enter the lens details. Type all the relevant information into the appropriate boxes, leaving blank any information you don’t have such as the serial number. Only the Model name and Minimum focal length are required.

3.3. Technical metadata 35 Photini Documentation, Release 2017.6.0.dev819

The data you enter is stored in the Photini configuration file so you can easily apply it to images in future by selecting the lens you have defined from the dropdown list. To remove a lens from the list right-click on it to bring up its context menu. This includes options to delete any lens but the one currently in use.

36 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Adjusting the lens metadata is useful if, like me, you use your camera with 3rd party lenses and/or telescopes via a T-thread adaptor. My adaptor identifies itself to the camera as a 50mm f/1.8 lens. Here I’ve used it with my 500mm mirror lens to take some pictures of the moon.

3.3. Technical metadata 37 Photini Documentation, Release 2017.6.0.dev819

When I set the lens model via the drop down list Photini offers the option to adjust the focal length and aperture used for each image, if the current values are inconsistent with the new lens. In this case I definitely do want to update these parameters so I click on Yes.

38 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Geotagging

The Map (Google) (keyboard shortcut Alt+G), Map (Bing) (keyboard shortcut Alt+B)& Map (OSM) (key- board shortcut Alt+O) tabs allow you to set the location of where a photograph was taken. (Some people argue that it should be the location of the subject of the photograph, but what about photographs of the Moon?) All three tabs have similar functionality, but use different providers of map data and imagery.

3.4. Geotagging 39 Photini Documentation, Release 2017.6.0.dev819

When you first select one of the map tabs you need to click the Load map button. This helps reduce the load on the map providers’ servers by not having them contacted every time you run Photini.

40 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Once the map is loaded, the Load map button is replaced by legal notices and a button (or buttons) to display the terms of use in your web browser. The map initially displays the previously used location. You can change the view by zooming in or out, or by panning the map by dragging it with the mouse. However, it’s usually easier to find a specific location by using the search facility.

3.4. Geotagging 41 Photini Documentation, Release 2017.6.0.dev819

Click on the edit box and type in a search term such as the name of a town, then press the ‘return’ key. A drop down list of place names should appear, from which you can select one. Note that the search may be influenced by the current location shown on the map. A search for ‘newport’ may return different results if the map is showing New York than if it’s showing London. Sometimes you may need to drag the map to somewhere near where you want to be and then click on the item in the drop down list. Note that the OSM map’s search box is disabled for a few seconds after each search to limit the load on the free servers that provide the service.

42 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Having found the right town, you can then zoom in and pan around to find the exact location where your photograph was taken. Using aerial / satellite imagery (if it’s available) can help with this.

3.4. Geotagging 43 Photini Documentation, Release 2017.6.0.dev819

Now you can drag and drop your photograph onto the map to set its location. To set the same location on multiple images, select them all and then drag and drop one of them.

44 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Note that photographs that have location data are shown with a flag symbol () in the image selector area. The location coordinates are shown in the Lat, long: box. These values are editable, so you can set the location of photographs directly, e.g. by copying and pasting from another one.

3.4. Geotagging 45 Photini Documentation, Release 2017.6.0.dev819

When several photographs have location metadata Photini will pan the map (and zoom out if required) to ensure all the selected images are shown on the map. Selected images are shown with coloured markers. Unselected images are shown with grey markers.

46 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Selecting another map tab, and loading the map, will show the same location but with data from a different provider.

3.4. Geotagging 47 Photini Documentation, Release 2017.6.0.dev819

Address lookup

Photograph metadata can include textual address elements as well as the latitude & longitude. These are stored in a 5-level hierarchy: street, city, province, country and region. The meaning of these terms is rather loose, especially when out in the countryside, and there’s no requirement to fill them all in. Typically city can be anything from a village to a metropolis, and street is a more specific location, e.g. “23 Abdication Avenue”. Province would be a state in the USA or a county in the UK. Country is stored as a name and a 2 or 3 letter ISO code. Region appears to be rarely used but could be a continent or sub-continent. Photini stores two addresses: camera is where the photographer was positioned and subject is the location being photographed. For example, a general view of the Eiffel Tower will almost certainly have been taken from somewhere else in Paris. This separation of camera and subject addresses was added to the IPTC specification in 2009, but you may still have software that only recognises “legacy” address metadata. In this case you should not use the subject column or region row. (Note that although the address metadata is standardised by the IPTC, it’s actually stored in the XMP data.)

48 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

The address button uses the map provider’s “reverse geolocation” service to convert latitude & longitude into a hierarchical address. This is a rather imprecise process so you may need to edit the results yourself.

3.4. Geotagging 49 Photini Documentation, Release 2017.6.0.dev819

In this example Google and Bing disagree about the street address and are using different languages for the state element.

50 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

With OpenStreetMap we get more information. This is more visible if you expand the address area by dragging its border with the map to the right.

3.4. Geotagging 51 Photini Documentation, Release 2017.6.0.dev819

OpenStreetMap is the only provider to include the fact that the location is a church. There are many different types of premises (shops, cafés, parks, etc.) included in OSM addresses. Photini adds all the information supplied to the street element. You can edit it out if it’s not appropriate. The button exchanges the camera and subject addresses. This may be useful if you have files with “legacy” address metadata that should really be in the subject column.

52 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Flickr uploader

The Flickr upload tab (keyboard shortcut Alt+F) allows you to upload your photographs to Flickr. Flickr is a popular online photograph sharing service. The Flickr upload tab uses the Flickr API but is not endorsed or certified by Flickr. Unlike some other Flickr uploaders, Photini uses the descriptive metadata you’ve created to set Flickr’s title, descrip- tion and tags. This means you don’t have to retype all that information! Note that the Flickr upload tab is only enabled if you have installed python-flickrapi. See installation for more detail.

3.5. Flickr uploader 53 Photini Documentation, Release 2017.6.0.dev819

Initially most of the Flickr uploader tab is disabled. It’s only usable after you’ve authorised Photini to access your Flickr account by clicking the Connect button.

54 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

The first time you click Connect Photini connects your web browser to Flickr, from where you can log in and give Photini permission to access Flickr on your behalf. You then copy a verification code from your browser to Photini.

3.5. Flickr uploader 55 Photini Documentation, Release 2017.6.0.dev819

If the authorisation is successful Photini displays your Flickr user name and profile picture. You should not need to redo this authorisation process unless you click the Log out button. Your current Flickr albums are shown on the right hand side of the Flickr uploader tab. You can add a new album with the New album button. This opens a pop-up dialog as shown below.

56 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

3.5. Flickr uploader 57 Photini Documentation, Release 2017.6.0.dev819

Type in the album details and click OK. Note that the album will not be created on Flickr until you upload a photo to it.

58 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

To upload one or more photographs to Flickr, select them in the image selector area, then choose which (if any) of your albums to add them to and set any of the other attributes, then click on the Start upload button.

3.5. Flickr uploader 59 Photini Documentation, Release 2017.6.0.dev819

During uploading Photini displays a progress bar. Uploading takes place in the background, so you can continue to use other tabs while the upload is in progress. The upload can be stopped by clicking the Stop upload button.

Google Photos / Picasa uploader

Attention: In early 2017 Google disabled many of the API functions used by this uploader. Creation and deletion of albums is no longer possible and the relevant GUI buttons have been removed. Editing album details is also no longer possible. You can still upload photos to an existing album though. Further changes to the GUI will be made if and when Google release a new API with suitable functionality.

The Google Photos upload tab (keyboard shortcut Alt+P) allows you to upload your photographs to Google Photos and Picasa Web Albums. Although it was originally written as a Picasa uploader, it also uploads to Google Photos. Unlike some other uploaders, Photini uses the descriptive metadata you’ve created to set the photo’s title and tags. This means you don’t have to retype all that information! Note that the Google Photos upload tab is only enabled if you have installed the relevant libraries. See installation for more detail.

60 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

The first time you select Photini’s Google Photos upload tab it will ask you to authorise Photini to access Google Photos. It does this by connecting your web browser to Google, from where you can log in and give Photini permission to access Google Photos on your behalf. You then copy a verification code from your browser to Photini, as shown below.

Every image uploaded to Google Photos has to be stored in a “collection” or “album”. You can select one of your existing albums from the drop down list (next to the “title” label) or you can create a new album by clicking on the New album button.

3.6. Google Photos / Picasa uploader 61 Photini Documentation, Release 2017.6.0.dev819

62 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

The title, description and other attributes of an album can be changed simply by editing the appropriate fields. Note that Google Photos does not display the description or location of a collection / album. (The album cover photograph cannot be changed due to a restriction in the API. You need to log into Picasa with a web browser to change it.)

3.6. Google Photos / Picasa uploader 63 Photini Documentation, Release 2017.6.0.dev819

To upload one or more photographs to Google Photos, select them in the image selector area, then click on the Start upload button. During uploading Photini displays a progress bar. Uploading takes place in the background, so you can continue to use other tabs while the upload is in progress.

64 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

The first image uploaded to a new album becomes the album’s cover image.

3.6. Google Photos / Picasa uploader 65 Photini Documentation, Release 2017.6.0.dev819

Facebook uploader

The Facebook tab (keyboard shortcut Alt+k) allows you to upload photographs to Facebook. Your photos’ de- scriptive metadata is used to generate a caption. Note that the tab is only available if you have installed the relevant libraries. See installation for more detail. Initially most of the Facebook uploader tab is disabled, as shown below. It’s only usable after you’ve authorised Photini to access your Facebook account by clicking the Connect button.

66 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

The first time you connect to Facebook a pop-up browser window opens for you to log in to your Facebook account. You may need to enlarge or maximise this window.

3.7. Facebook uploader 67 Photini Documentation, Release 2017.6.0.dev819

Photini requests permission to see your photos. It needs this to get details of your current photo albums – title, description, location and cover photo.

68 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

Once permission is granted the tab is enabled. Your Facebook user name and profile picture are shown whenever Photini is connected to Facebook. You won’t need to login via the pop-up window again for up to two months unless you click on the Log out button or you remove Photini’s permissions in your Facebook settings apps page.

3.7. Facebook uploader 69 Photini Documentation, Release 2017.6.0.dev819

The album title widget shows a drop-down list of all your albums. (Those that Photini is not yet authorised to upload to are disabled.) The special title is always available. It corresponds to an application specific album called “Photini Photos”.

70 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

You can create a new album by clicking on the New album button. This opens a pop-up dialog where you can set the album properties. These are optional except for the title. Note the privacy drop-down which controls the visibility of all photos uploaded to the album.

3.7. Facebook uploader 71 Photini Documentation, Release 2017.6.0.dev819

After typing in the album details, click OK.

72 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

The first time you create an album or upload a photo a pop-up browser window opens asking you to authorise Photini to post to Facebook.

3.7. Facebook uploader 73 Photini Documentation, Release 2017.6.0.dev819

You should allow Photini to share things publicly as you can always specify a more restricted visibility when you create an album.

74 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

The newly created album is added to your album list and can be selected as the upload destination. There are three more options to set before uploading any photos. The Suppress news feed story option allows you to upload photos without generating a “Jim has uploaded 10 photos to the album Holiday 2012/07” type announcement on your Facebook timeline. You will receive a notifica- tion that Photini has uploaded photos but this will not be visible to your friends. The Set "city" from map coordinates option uses your photos’ location data (if present) to choose a “city” (or region, neighbourhood or country) from Facebook’s places directory. It may not always give the results you expect, so if you use this option you should check your photos after upload and change their location if necessary. The Optimise image size option is only available if you have installed the Python Imaging Library. It resizes images to one of Facebook’s preferred sizes, usually the maximum permitted 2048 pixels. Doing this before upload may result in better image quality and makes uploading faster.

3.7. Facebook uploader 75 Photini Documentation, Release 2017.6.0.dev819

After selecting some photos you can click on the Start upload button. The tab is mostly disabled during upload but other Photini tabs can be used. The upload can be stopped at any time by clicking on the Stop upload button.

76 Chapter 3. User manual Photini Documentation, Release 2017.6.0.dev819

The first picture uploaded to a new album becomes the album’s cover photo.

Image importer

The Import photos tab (keyboard shortcut Alt+I) allows you to copy photographs from your digital camera or anywhere else on your computer (for example, a camera memory card if your computer has a card reader). Whilst there are many other programs to do this, I’ve never found one that does things the way I want, so I added one to Photini. Note that you can only import directly from cameras if you have installed python-gphoto2 (which is not available on Windows). See installation for more detail. The key part of the importer is the Target format field. This provides a very flexible way to specify where on your computer imported images should be stored. It uses % formats to generate file and directory names based on the image capture date & time. The most useful ones are %Y (year), %m (month number) and %d (day of the month) but many more are available. See the Python documentation for a complete list. As well as the date & time format strings, bracketed keywords can be used to manipulate parts of the file name:

3.8. Image importer 77 Photini Documentation, Release 2017.6.0.dev819

keyword meaning example (camera) the camera model name Canon_PowerShot_A1100_IS (name) the complete file name IMG_9999.JPG (number) the numeric part of the file name 9999 (root) the filename without its extension IMG_9999 (ext) the filename extension .JPG Below the Target format field is an example generated from the current format to help you edit it correctly. Note that Photini stores a different target format for each camera or source folder that you use. This can be useful if you have two cameras that use the same file names. For example, I use /home/jim/Pictures/from_camera/ %Y/%Y_%m_%d/IMGe(number)(ext) for my DSLR to rename files from IMG_9999.JPG to IMGe9999.JPG so they don’t clash with files from my compact camera, which also uses names like IMG_9999.JPG.

After connecting one or more cameras and pressing the refresh button, a camera can be chosen from the