LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

EXIF Tag Specifier

I'm working on code to read EXIF data from image files (getting close to being ready).

One of the things needed is a specifier for EXIF tags.

I've created a text ring, based on documents found online (see attachment).

The problem is that there are so many tags that it's hard to find the one you want in the selection list.

I'm leaning toward reordering them alphabetically.

Or possibly using a tree instead.

Or maybe something else (if somebody has a better idea).

What do you think?

 

0 Kudos
Message 1 of 2
(660 Views)

The approach I took for reading ID3v2 / Vorbis comments / RIFF info tags from audio files was to treat the tag name as a string, normalizing certain standard tags to a common identifier (ARTIST, ALBUM, etc). The API for reading tags is then just a single VI, which takes in a file path and returns all tags as a cluster array of [name, value] pairs, where name and value are both strings. The end user can then filter the tag list as required.

Dataflow_G_1-1693884364684.png

 

For the EXIF tags I'd keep it simple and just use a string, and include a link to an EXIF tags document (such as this one) in the VI's context help. If the end user is dealing with EXIF tags they probably know what they need and can enter it in the tag name string, but if they don't, they have a reference to lookup what's available plus a description of each tag. An option to read all EXIF tags (similar to the output from running exiftool -all -s) would be useful in letting the user discover what tags are commonly used, and allow them to filter based on their requirements. If you did use the string approach, it's probably worth having a VI to check the validity of a tag name against a map constant with all valid tags, and return an invalid tag error if isn't found.

Message 2 of 2
(558 Views)