TagMyJpgs: An Editor for EXIF Tags (v.0.7.0.99)

This is the provisional documentation of my EXIF Editor/GeoTagging software. This site is being updated, as the software is being modified. It will (hopefully) always reflect the latest version of this software.

DateVersionDownload Link Comments
3.July 2007 0.7.0.99 For Microsoft Internet Explorer IE 7: Install TagMyJpgs and follow the instructions on the web site.

For other browsers: expand this zip file and extract all files from this archive into a directory of your choice, then run the executable. No additional installation steps will be done - so you need to ensure to have .NET 2.0 installed.
This is the 5th release of this software.
Installation: If you use MS Internet Explorer 7, then click on this link and follow the instructions. The installer routine will automatically install missing components.

After each launch, the software checks here on this web page if a new version is available - follow the on-screen instructions for the installation.
This software is written for Microsoft Windows. It has been tested under Windows XP, SP2. It should also run under any other version of Windows, but I have not tried it yet. During the installation, the software will check for the Microsoft .NET framework 2.0 and will install it, if it is missing from the host PC.
Since this software is in beta state and has only be tested in one specific PC configuration, it might be that other requirements are necessary, which I am not aware of.
20. June 2007 0.7.0.4
3. June 2007 0.5.0.0 The documentation and installation of the previously released version 0.5.0.0 is still available here. However, it is strongly recommended to use only the latest version.

This software is written in C#, using Microsoft's latest free Visual Studio 2005 Express Edition IDE. The auto-installer and automatic update were also written using this tool - no warranty from my side for the correct functioning of it.

Update Log

Version 0.7.0.99

3. July 2007
  • GPS altitude is editable
  • fixed incorrect text for GPS tags 0xa, 0xb, 0xc

Version 0.7.0.94

25. June 2007
  • distance between object and camera is stored

Version 0.7.0.4

20. June 2007
  • bug fix re. storing and retrieving default focal length

Version 0.7.0.1

19. June 2007
  • installation now possile from web
  • fixed bug re. imager size
  • focal length for 35mm film equivalent editable and stored as new dafault
  • save image as file with date in name
  • renamed application to TagMyJpgs

Version 0.7.0.0

18. June 2007
  • added title tag x320 for title, tag 270 is description
  • store in settings: last azimuth, last photographer, last copyright, for repeated tagging without editing
  • store in EXIF tag ImageID (42016) a unique image ID, created from the original filename, preceded by a date/timestamp
  • write in EXIF tag the current software version

Version 0.6.0.5

17. June 2007
  • Corrected error in computation of imager size (and view angle) for cameras other than Canon PS 45 and PS300.
  • Automatic determination of best possible zoom, based on camera and object location.
16. June 2007
  • Stores last Geo-position, loads this position at next program start.
  • First try of installer with setup.exe.
6. June 2007
  • (int) PropertyTagId.GpsMapDatum read and write, on GUI
  • drag-and-drop images onto GUI for file opening

Version 0.5.0.0

3. June 2007 First release.

Context

This software is an editor for a subset of EXIF data in JPG images. It provides an easy-to-use inspection of these tags as well as the possibility to modify the tags. A particular functionality is the use of Google Maps for adding georeferenced information (location of photographer) as well as viewing direction.

EXIF tags are metadata, which are embedded within a JPG image. EXIF stands for "Exchangable Image File Format". More info can be found at www.exif.org.

General Operation

  1. Start the Program
  2. After sucessful installation of TagMyJpgs, there will be in the Windows Start Menu an entry "Reinhold Behringer". Under this directory entry, there are two shortcuts: "TagMyJpgs" and "TagMyJpgs online support". The latter one leads to this website here.
    This is the main window of the program. It shows the fields which can be edited after a picture has been loaded.

  3. Help Access

  4. Currently there is no help system implemented. But the "About" tab on the window shows a few bits of information about this software, together with a link to this website. Clicking on the URL will open the default web browser and navigate to this web site.

    The link label to the email address below the URL will open the default email program and will allow you to send me a question. I hope to be able to answer the questions - please bear with me when my reply takes a bit of time. Eventually I might set up a forum, but currently I do not have the time and resources for this.

  5. Load a JPG image...
  6. ... either by clicking onto the button labelled "load image", or by drag-and-drop an image from any directory.
    After loading, the GUI shows a thumbnail of the loaded image in the image area to the left, and the current filename of the image appears in the window title bar.
    Some of the tags are shown in GUI fields and can now be edited:

    If the picture does have existing tags in any of these fields, the yellow background of these fields disappears:

    Textfields for which no tag was in the image, keep their content and their yellow background until edited by the user.

    If a picture is loaded where some of the tags are not present in the image, then these tags appear as textboxes with yellow background. The text content of the tags appears unchanged from the previously loaded image, so that the same information can be just left there and will be placed into the new image.

    As soon as a text field is edited, the yellow background of this text field turns white.

    Additional fields show non-editable information:

    The current graphical user interface (GUI) in this version is not yet final. Some fields are currently just used for debugging purposes and do not have any functionality.

  7. Inspect Other Tags
  8. Clicking on the tab headings allows to view other tags:

  9. Geotagging
  10. The Geotagging tab shows the information present in the JPG file about location of the camera and location of the object. The camera location is shown in geographical coordinates latitude and longitude. The user needs to select the GPS ellipsiod to which these coordinates refer. Currently, WGS-84 is the standard that is being used in most recent geographics-related software programs.
    The leftmost fields show the degrees in decimal form. The right fields show the coordinates either in degree-minutes-seconds or in degree-minutes. The display can be selected by the radio button below the text fields. The data can be entered and edited directly in these fields. This is, however, not advised, unless the coordinates are known from a GPS record. The more suitable method is to select the coordinate on a map. This procedure is described later below. In addition to the camera location, the location to the object and the viewing direction (azimuth angle, zero is North) are shown here in the lower segment of the GUI. These values can currently only be edited by the Google Map interface.

    The preferred way to edit the Geo-Tagging information is to use Google Map. This is described further down in a separate section.

  11. Save picture
  12. Save the image with the newly edited EXIF tags by clicking on the button labelled "Save image and store EXIF data". This is when the EXIF data will actually be written into the JPG file. Before this is done, all the EXIF edits are just in memory and are lost, if the image is not saved.

    The image file with the edited EXIF tags can be saved either under a new filename, where the new filename is the old one, "preceeded with the datestamp", or simply wiht the old filename, where the previous file is being overwritten. In the latter case, the original file is lost. Therefore, it is recommended to save backup of the images before using this TagMyJpgs software, or use the first of the two saving methods.

    The curent version of the software removes the tag #37500, which is a camera-specific tag with information that is different for each camera manufacturer. Since there is no standard for the information encoded herein, this tag can cause problems due to its use of pointers to other tags. The current version of TagMyJpgs stores the content of this tag in a separate file, for a potential re-merging by a later software release.

Geo-Tagging with Google Maps

If you click on the button "Google Maps" in the tab "Geo-Tags", a new window opens, covering the full extend of the screen, although not being "maximised". In this window, a web browser control opens the HTML file "GoogleMap.html", which in turn links to the Google Map site using Javascript API functions.

In order for this to work proplerly, do under no circumstances edit this HMTL file "GoogleMap.html"! Originally this file was intended to be included within the executable, but then problems arose with accessing the Google Map API, which only could be circumvented by having this file explicitly as an HTML file present.

If the PC is not online, then an error message will occur, and the Geotagging will not work.

This is the screen which appears after clicking on the button "Google Maps" (shown here resized by 50%):

  1. Camera Position
  2. If the image never has been geo-tagged before, that is if the GPS location tags in the EXIF data are empty, the default location is (0,0), which is at the equator somewhere west of the coast of Africa. If another image has been geo-tagged previously, the tags from this image are used as default in the new image as starting values.

    The camera location is indicated by a red marker, complemented by a callout with a thumbnail of the image. This marker can now be moved on the map to the location where the image was taken. It can also set explicitly by entering latitude and longitude data (as decimal degrees) in the text fields at the top left of the windows form and then clicking the button "Show position on the map".

    The map can be zoomed into with the Google Map zoom controls at the left top corner of the map display area:

    By default, a satellite / aerial photography image is shown with roads overlaid (hybrid mode). In some cases, when zooming in, there are no high level of detail photographs available. In that case one can switch the map type from "hybrid" to just "map", using the selection buttons on the top right corner of the map display:

  3. Camera Direction and Object Position
  4. A unique feature of TagMyJpgs which is not yet used in most geo-tagging applications is to code also the location of the object within the camera. In the EXIF tags, they are stored as destination coordinates. In case that these destination coordinates had been assigned by the user through some other software as actual destinations and not as object coordinates, then you should be aware that this software will overwrite these destination coordinates by the ones selected here.

    The selection of an object that appears in the image is done simply by clicking onto the map, without dragging the marker. This makes the callout balloon disappear. If you want to click on an area behind the callout balloon, it can be closed by clicking on the "x" at the top right corner of that balloon. After an object location has been selected, the following elements are drawn:

    By clicking on the button "Copy Geo-Tag in EXIF data" these geographical data (camera and object location are copied into the respective EXIF data tags, and the browser window closes. With "Cancel" the geo-tagging can be aborted without any coordinate storage.

    After the coordinates have been set, they are shown on the Geo-Tag form:

    In addition to the object coordinates, the camera viewing direction is computed and stored in the EXIF data explicitly.

    Many programs and website support the geo-tagging of the camera position. However, it is not known if any software supports the encoding of the object location. Therefore, this feature must be considered experimental and unique to this particular EXIF GeoTagger software.

Miscellaneous

Focal Length

There are several ways of encoding the viewing angle (which is related to the focal length). The viewing angle is not encoded directly as a tag, but is indirectly available through either focal length or image chip resolution. TagMyJpgs first evaluates the focal length. Here, there are two values: the "true" focal length of the lens system of the digital camera, and the equivalent focal length for a conventional 35mm film camera. Implicitly, the "normal" focal length is relevant for the correct interpretation of the focal length and its conversion into the viewing angle: for a 35mm film camera, the "normal" focal length equivalent is 50 mm. Based on the available tags in the EXIF data, TagMyJpgs tries to compute the current viewing angle. If successful, the text box field for the 35mm equivalent focal length is not editable (grey background).

If insufficient data are available, the user needs to provide help. In this case, the text box field of the 35mm focal length (Picture tab) and the "normal" focal length (Camera tab) are editable, with white background. Usually in the camera operation manuals or specifications, the "equivalent" focal length range is given (e.g. 38 mm - 114 mm). Take now an image that is taken with one of these extreme focal lengths. This will allow to enter on the Camera tab the value for the 35mm equivalent focal length. TagMyJpgs computes then the "normal" focal length (equivalent to 50 mm) and stores it. If another image also does not have information which allows to compute the viewing angle, this normal focal length is used.

Future Releases

Work is currently being done to extend the functionality. One feature will be to read GPX files with recorded GPS coordinates for geotagging with log files. Updates to this software will be made available through this site.
© 2007 Reinhold Behringer - all rights reserved