Friday, 8 February 2019

Tool for Annotating Image Files

MetaProxy is a free little program that allows archival descriptions, search terms, provenance, and any other meta-data (i.e. data about data) to be associated with images and other file types. The program is designed to run under Windows and requires no installation.

It may be downloaded for free from:


This folder also includes a PDF user guide, and a description of the general principle being demonstrated can be found at:


An equivalent version for the Mac is also available via the associated Facebook group: MetaProxy Group.

So what does it do?

Unlike similar commercial programs, it does not hide your meta-data in a database, or within invisible areas of an image file, or in any other opaque form of storage; it is in plain text files that can be loaded into a simple text editor, and the content of those files is completely dictated by you.

Think of this as taking something that might normally be scribbled on the obverse of a photograph and storing it in a separate text file.

The idea of using a separate file for this purpose is not new — they're known as "buddy files", or sidecar files — but this program shows that they can be effective without having to conform to some data standard, and without having to use specialised programs to see/edit their content. The only convention is that the image and its buddy file share the same name (e.g. picture.jpg and picture.meta) and they must currently reside in the same folder as each other. Such buddy files would be copied with their neighbouring images if you ever move them, or make backups, and would be just as permanent — more permanent than using hidden meta-data inside an image because that is often wiped clean by cavalier Websites and image-editing software.

When double-clicking on a buddy file, this tiny program finds the associated image and launches it in its default viewer, e.g. Microsoft Office Picture Manager, and then displays the content of the buddy file over the bottom third to present that extra information to you. Sound simple?


As well as providing a place for your "back of the picture" annotation, the buddy files are a good place to put search terms. I am using #hashtags in this document (e.g. for relevant surnames, places, dates, etc), but that is not an essential format. Consider, for instance, if you have a digital image of a newspaper clip, or of a handwritten will, and that you've also made a textual transcription of it. Well, if you put the transcription into the buddy file then a Windows Search will find the buddy files relevant to what you're looking for (remember that you cannot search the text inside an image file, but you can search text transcribed into a text file), and then double-clicking on any one of them would show both the original image and your transcription.

The program doesn't care what type of image files you're using (*.jpg, *.jpeg, *.tiff, *.png, etc.) and will even work with other types of data, such as Abode Acrobat files, HTML files, or SVG family tree images. For instance, if you have an article written in a Word file called article.docx and a corresponding buddy file called article.meta, then double-clicking on the buddy file brings up both, just as with images. Not only that, if you have article.jpg and article.docx then both will be launched in their respective viewers before displaying the content of the buddy file. In other words, when you double-click on a buddy file, it will find all the files in the same folder with a matching name and display each of them.

An accidental feature of the program (one that I didn't anticipate at the start) is an ability to describe and open a collection of images. In a demo given on Mondays with Myrt on 28 Jan 2019, I used an example with the following files:

RisalpurCemetery.1.jpg                      First image and its buddy file
RisalpurCemetery.1.meta
RisalpurCemetery.2.jpg                      Second image and its buddy file
RisalpurCemetery.2.meta
RisalpurCemetery.3.jpg                      Third ...
RisalpurCemetery.3.meta
RisalpurCemetery.4.jpg                      Fourth ...
RisalpurCemetery.4.meta
RisalpurCemetery.meta                     Buddy file for the whole collection

That collection related to a cemetery in Pakistan, formerly British India. As described above, double-clicking on, say, RisalpurCemetery.1.meta would display that buddy file and the associated image (RisalpurCemetery.1.jpg), etc., but double-clicking on RisalpurCemetery.meta would launch the whole collection. This works because the program replaces "meta" with "*" in the initial buddy file name in order to generate a wildcard for it to find all the associated files. In this case, the generated wildcard also matches the other buddy files: the per-image ones.

As of v2.0, the program may also be used to open your image or other data file. I'll describe this in a moment, but if you right-click on an image (say), select metaproxy.exe using "Open with" (but not making it the default), then it will search for an accompanying buddy file and open both, just as it did above. However, if you didn't yet have a buddy file then it will automatically create an empty one in the Notepad editor for you.


Because these buddy files are textual, they're searchable. This can be on specific search terms or on free text, as with transcribed data. This means that in Windows Search, you could type something like: *.meta AND #Proctor AND #1870s, and it would enumerate all the buddy files for that surname in that decade. Then double-clicking on one of these buddy files would show you both the full text from your buddy file and the accompanying image, together.
 

Getting it going


The program is very simple and so needs no installation. Just download the metaproxy.exe from the Dropbox folder (see above) and save it in a safe place somewhere on your hard drive.

In order to test this out, find (or create) a place where you have an image file; say image.png. You will then need to create a corresponding buddy file, image.meta, using the Notepad text editor and put some meaningful text in it. Although you can do this manually (see 'Creating Buddy Files Manually' in the PDF guide), the program will do this for you. Simply right-click your image file, select "Open with", then "Choose another app", and browse to the location of this metaproxy.exe program. You may have to follow several of these prompts, but don’t be enticed into the “app store”. Make sure the 'Always use this app to open this type of file' is unchecked before hitting 'OK'. This will create an empty buddy file for you in order to make it easier to catalogue a series of files. NB: after doing this once, the metaproxy program will be immediately available in the "Open with" list for that file type, and you won't have to search for it again.

Now right-click your completed buddy file (not the image file), select "Open with", then "Choose another app", and browse to the location of this metaproxy.exe, as you did before, but now make sure the 'Always use this app to open this type of file' is checked before hitting 'OK'. This is a one-time only task that tells Windows to always use the metaproxy.exe program whenever you double-click on a *.meta buddy file; you won't need to do this again.






From then on, when you double-click any *.meta buddy file, it will automatically open the associated files (i.e. the ones having the same names but different file types) using their registered applications (e.g. some image viewer, Microsoft Word, or whatever). It will also open the buddy file in Notepad and overlay it on the bottom third of the file's view to present any descriptive text you've created.

Configuration

Although the program is self-contained and requires no mandatory configuration, provision was included in v2.1 for an optional INI file. This means that a text file called metaproxy.ini can be placed in the same location as metaproxy.exe in order to change the default functionality if necessary

The default settings are equivalent to the following INI-file contents:

[metaproxy]
CreateType=.meta

[.meta]
SideBySide=False
Editor=Notepad

The [metaproxy] section defines global settings. Other sections are per buddy-file type, implying that you can define several variant buddy files with different properties.

CreateType specifies the default file type to use when creating new buddy files.

SideBySide specifies that a side-by-side mode, where image and buddy file each take 50% of the screen width, is to be used for a specific buddy-file type. The default is to overlay the buddy file over the bottom third of the image. Having this option allows you to define a buddy file type that's configured to better handle transcriptions.

Editor is the name of the text editor to use for a specific buddy-file type. The editor name must be a full file specification if it is not on the normal system search path.

An example of extra section for some hypothetical *.tran buddy-file type might be as follows:

[.tran]
SideBySide=True
Editor=Notepad++

NB: whenever a file type is mentioned in this INI file, the leading period is mandatory.


[Updated to match small changes in v2.2 release]

10 comments:

  1. Works great so far for me in Windows 7, even works with Void Tools Everything search, which is my default search program. How does the buddy file work for the whole collection and how to you create that?

    ReplyDelete
    Replies
    1. My original version is Windows-only, but another developer is currently working on an equivalent for the Mac. Would you be interested in giving it a try, Jean?

      Delete
  2. If you mean having a single buddy file that describes a whole collection, as briefly described above, then it's quite easy -- in fact, it's just a fluke of using wildcards. Let's say you have a collection of images called picture.xx.jpg where the 'xx' can be anything you like. I used numbers above but words would work, too. Each of these images would have a specific buddy file called picture.xx.meta, and clicking on any one of them would bring up the corresponding image. What you would then need is a single buddy file called picture.meta (i.e. with the 'xx' part). When the metaproxy program sees a buddy file, it replaces the ".meta" file extension with ".*" to create a wildcard to go searching for you images, etc., but in this case the wildcard would match each of the other buddy files and so it launches each of them as though you you'd double-clicked on each and every one. Let me know if that doesn't help much.

    ReplyDelete
  3. Somewhere on Facebook, I summarised the following goals and advantages of this low-jack solution: (1) Permanent (or "non-volatile"), (2) Does not have to follow any imposed standards, (3) Applies to ALL file types (inclusively so), (4) Transportable to other systems (non-proprietary), (5) Meta-data is clearly visible and modifiable (non-obfuscated), (6) Meta-data is searchable with normal tools, (7) Applicable to large-scale text, such as transcriptions.

    A user has reported a glitch with MS Paint -- which is trying to do something "clever" -- but I have a fix lined up for this. It has also come to light that a "side-by-side mode" would be more useful when the buddy file contains a transcription from an image so I want to do something to help there before releasing V2.2.

    ReplyDelete
  4. *V2.2 Released* This deals better with MS Paint's quirks, and also offers a side-by-side mode for transcriptions.

    ReplyDelete
  5. Thank you! Thank you! Thank you! This is so much easier and intuitive than any of the software programs I've tried. And I can share info with my mom and her very limited old computer. Thank you!

    ReplyDelete
    Replies
    1. Thanks SuzAnn. Yesterday, I updated the introduction (above) to mention a new Facebook group for this program. If you're on Facebook then I'd recommend joining to make sure you get the best out of it. The group is called "MetaProxy".

      Delete
  6. The Mac version is now available testing. Visit the Facebook group (link in article) for details of where to get it from.

    ReplyDelete