nemethviktor / GeoTagNinja

A lightweight photo geotagger for Windows.
https://geotag.ninja
GNU General Public License v3.0
22 stars 1 forks source link
geotagging winforms winforms-application

Welcome to GeoTagNinja

GeoTagNinja is an open-source photo geotagger GUI for Windows. GTN uses ExifTool to read and write EXIF info. This also sets the limitations and capabilities. If ExifTool can read/write a file, chances are so can GTN.

There is a "short" (15 mins) demo on YouTube if you feel like watching it. It's from the original (Aug 2022) release but it still covers the main features more or less. It's only gotten better since...

Download & Install (Windows 7+ x64 only)

Features at-a-glance

Quirks and Things to Note

A Particular Note on Working with Adobe Bridge (ACR) and RAW files > Saving as JPGs or Other Formats.

Basically, there appear to be two schools of thoughts, one propagating that RAW files themselves shouldn't ever be edited, whereas the other is less specific on this matter. GTN allows to set a "Process the original image" on a per-extension basis. If set so then the updates will go into the RAW files as well as (subject to further settings) an XMP file. When not set then only the XMP file will be edited, leaving the RAW file intact. This latter (do-not-process-the-raw-file) can cause some issues:

Collection Mode (Hooking up GTN with Jeffrey Frield's LightRoom Classic Plugin "Run Any Command"

As of Build 8475 [20230316] onwards we now have a CollectionMode. The initial logic/usage is as follows:

  1. Download (and install) the plugin from http://regex.info/blog/lightroom-goodies/run-any-command - there are installation notes in Jeffrey's website, if you are having issues with this part, please nudge him, not me.
  2. Within LRC under "File | Plug-in Extras | jf Run Any Command | Configure..." -> Configure the plugin as such: "c:\Program Files\GeoTagNinja\GeoTagNinja.exe" --collection={MANIFEST} (where {MANIFEST} is a literal string, i.e. just type that in with the curly brackets).
  3. Launch the Custom Command. This should trigger GTN in CollectionMode.
  4. Edit and interact with your files as usual. Don't forget to save!
  5. When all's done, close GTN. At the moment it doesn't support being called twice with an updated file list. That may come later.

Things to note:

Building & Testing

If you want to build the project, probably use Visual Studio - I used v2022 Community. Instead of downloading the source code as zip please pull from Git, you can do that via VS if you want. There are 2 parts to the project. One is the "main" the other is the installer. You'll generally have problems w/ the installer bcs it hasn't been pushed to git so it's going to be missing that half. For the "main" project you should be okay without anything separate. It has worked ok for me on a blank VM when pulled from Git. Just build and F5/run.

There is currently no preset release cycle. I don't expect one to happen in a systematic way. There is a development branch as mentioned above for people that like to live dangerously.

Pull Requests

I'm generally happy for anyone competent to add pull requests but I don't always sync the commits as they come with GitHub until there is an actual release - it's therefore possible that my local commits are lightyears away from the public ones. If you'd like to do a pull request, drop a message/open a ticket first please and we can sync the details.

Known Issues

Destinations/Possible Bug in WebView2

TL; DR: the arrows are missing. Longer: Hypothetically the idea with Destinations is that if there are groups of images that have GPSDestLat/Long defined then the app draws a path on the map for each of these. Assume the following:

Possible Issues & Solutions

ToDos

Roadmap

I'm hoping to eventually move away from WinForms to something visually more pleasing. Currently there's no Visual Designer for WinUI3 and I don't want to build a WPF app that is almost similarly outdated (as WinForms) just more complicated to code due to XAML. I don't want to do a "Microsoft Store" -style package either so no UWP (plus that's deprecated now). At the same time the current .NET Framework 4.8 is a little obsolete. I haven't switched to 4.8.1 because that doesn't work on Win 7 and also offers nothing that's relevant for this app, however it's likely that eventually the codebase will move to some more current version of .NET (8+ that is, somewhat subject to WinUI designer updates or if .NET9 would include Dark Mode proper for WinForms or not [afaik it's more like .NET10 for that at the moment]) so support for older OSs will eventually be dropped. I don't have a timeframe for this but I'd hazard sometime late 2025.

When reporting bugs please specify

System Requirements