Digital Photo Organizer

Image for post
Image for post

Our digital photo collections are particularly messy, since we take so many photos from so many different devices, without ever giving much thought to what images we will keep, where we will store them, and how we will ever retrieve them if we need them.

In this project, I would like to talk about the program I developed in order to separate the digital photos we have according to the date and location.

Data Cleaning and Preprocessing

I had 1535 photos worth of 4 years on my cell phone, and I used these photos as my data.

A photos EXIF data contains a ton of information about your camera, and potentially where the picture was taken (GPS coordinates). That means, if you’re sharing images, there’s a lot of details others can glean from them.

EXIF stands for Exchangeable Image File Format. Every time you take a picture with your digital camera or phone, a file (typically a JPEG) is written to your device’s storage. In addition to all the bits dedicated to the actual picture, it records a considerable amount of supplemental metadata as well. This can include date, time, camera settings, and possible copyright information. You can also add further metadata to EXIF, such as through photo processing software.

If you use a camera phone or digital camera with GPS capabilities, it can record EXIF geolocation metadata. This is useful for geotagging, which creates all kinds of new possibilities, such as allowing users on photo-sharing sites to see any images taken in specific locations, view where your pictures were taken on a map, and to find and follow social events.

EXIF and especially geotagged data, says a great deal about the photographer, who may or may not want to share all that information. Since EXIF data is a powerful feature you can view it, remove it, and finally, turn off geolocation recording on your devices.

PIL Python Imaging Library is used for image processing. This library provides extensive file format support, an efficient internal representation, and fairly powerful image processing capabilities.

As you see on my data set, you can get date, geo, lat, lon, zipcode, location information from photo’s EXIF data.

Image for post
Image for post

Creating Graphical User Interface

TKINTER Python GUI Library is used for creating Windows GUI.

Tkinter is the standard GUI library for Python. Python when combined with Tkinter provides a fast and easy way to create GUI applications. Tkinter provides a powerful object-oriented interface to the Tk GUI toolkit.

The Tkinter package (“Tk interface”) is the standard Python interface to the Tk GUI toolkit. Both Tk and Tkinter are available on most Unix platforms, as well as on Windows systems. (Tk itself is not part of Python; it is maintained at ActiveState.)

Image for post
Image for post

How to Use the GUI?

Now time to organize our photos by using GUI.

First, we select our Source and Destination folders.

Next, we have an option to organize our photos by Date or Location. Let’s select one of these.

Finally, we decide to Move or Copy our photos for organizing.

Image for post
Image for post
Screen shot from Copy/Move files By Date
Image for post
Image for post
Screen shot for photo’s locations on the map


While I was preparing this project, I learned a lot of new things and enjoyed it. I hope you will read and use it with pleasure.

GitHub repository for this project is here.

Thank you for your time and reading my article. Please feel free to contact me if you have any questions or would like to share your comments.

Written by

Database Developer|SQL Developer|Data Science Candidate

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store