JPhotoGeoTagger - An pure Java and open soorce photo geotagging tool
Introduction:
- What is JPhotoGeoTagger? It's an open source multi platform tool which embeds location information to digital images/photos from location and time information recorded by a GPS device.
- How does JPhotoGeoTagger work? It takes a GPX file which was recorded at the same time and matches the time stamp of the coordinates (lat/lon/altitude, WGS84) with the time information of images in JPEG format (either EXIF header or modify time of the photo).
- Does it change the image itself? It's changing the header by default, so there is no loss of image quality throughout the photo processing. There is a new option which writes the coordinates into the image.
- JPhotoGeoTagger (aka geotagger) is written in 100% Java (it's not relying on EXIFtool) and is licensed under GPL.
- What is the status of this tool? It's currently frozen in release candidate stage.
Features:
- Writes latitude, longitude and altitude to the image's EXIF headers.
- Handles timer inaccuracies due to missing camera adjustments and it contains quite some elaborated error handling to avoid time mismatches.
- Writes the calculated coordinates into the image itself.
- IT's the only pure Java solution for photo geotagging we know of.
Dependencies:
- MediaUtil library (embedded in the jar file).
See also:
--JPEG=<photo file> - the image to be tagged with existing EXIF header, e.g. sample.jpg
--GPX=<gps track> - the GPS track input containig coordinates and time stamps
--TimeShift=<time> - e.g. 2d4h3m
--maxTimeDelta=<time> - e.g. 5m
--useModifyTime - flag to use file modify date instead of the date from EXIF header
--writeGPStoImage=true - true or false
--textPosition= <constant> - e.g. TOP_LEFT or BOTTOM_RIGHT
--textFont= <font name> - e.g. Arial
--textSize= <font size> - e.g. 12
--textRed=, --textGreen=, textBlue= <number> - e.g. 230
Other Parameters:
--DebugLevel=[0-5] - sets the debug level to use, the higher the more debug output you will get
--force=true - disables some sanity / security checks
--Overwrite=false - leaves copies of the modified images on the disk
See JPhotoGeoTaggerUsage.
The downloads contain a jar file, a manual and some docs. The '..._complete' version contains the source code too.
- Release Candiate 2 of the GUI Version (RC of Release 0.6.0)
This is a release candidate. As such it may still contain some bugs,
and is not yet fully tested. Use at your own risk (-;
- Current stable release 0.4.1:
- Older release 0.3.2:
- Release 0.3.2 - first public release
- Release 0.4.1 - added fallback option, added writing GPS coords. to the image
- Release 0.6 (Candidate 2)
- None so far - it's a miniprojekt, so what do you want? As it concerns the initial developper he writes: There won't ever be any more versions (written by me) of JPGT, as I won't continue to develop it.
There are currently following bugs or limitations known:
- Banner shows wrong version at startup (3.xx insteag of 4.xx).
- Help/usage text seems to have a corrupt output layout.
Function enhancements:
- Insert a place name (location, geoname) into the picture instead of coordinates. This could be done with the free online webservice http://geonames.org. Would be a cool new feature! <-- Im working on it..
- Rename a photo with date and location
- Option '--writeGPStoImage=true' obviously destroys some image space. In this case, a backup image could be written. Let's name it with '_original' appended before the file extension, e.g. the original file "sample.jpg" will get a backup named named "sample_original.jpg". This can allready be done. Just use --Overwrite=false
- Manually write latitude/longitude in a photo's EXIF header or a selection of photos
Distinct new functions or components:
- A user friendly GUI (JPhotoGeoTaggerGUI !) as a front end to JPhotoGeoTagger would be cool too!! <-- will be implemented 'soonish' ^^
- Create a Google Earth KML file to directly visualize the geocoded photos and tracks in Google Maps and Google Earth
- E-mail me at d1grob [at] hsr [dot] ch