13 Commits

Author SHA1 Message Date
Dustin Oprea
9068786204 Rewired to use IFD-path strings instead of IfdIdentities.
- These are absolute representations of where an IFD is positioned with
  respect to the other IFDs. There is a more-specific, "fully-qualified"
  form of the IFD-path that allows you to express indices in order to
  refer to specific siblings.

- Eliminates issues with IFDs at different levels potentially having the
  same name (if that's what is required with a certain dataset/
  datasource).

- There is a specific IFD registry that controls the heirarchy of IFDs
  that we recognize and the tags associated with the child IFDs. This
  allows custom hierarchies replacing even the TIFF specification for
  which are expected in an image (so we can read other types of images
  or any potential IFD hierarchy, even non-image ones).

- IFD and IB instances embed the IFD-path and FQ IFD-path that they were
  found or built for.
2018-08-01 08:35:21 -04:00
Dustin Oprea
15cf52b558 ifd: Imp'd notion of IFD paths. 2018-07-28 17:00:47 -04:00
Dustin Oprea
840d133d71 ifd: Added formal IFD index.
- Used to browser and validate tag trees, while also allowing for custom/non-
  standard IFDs. Will be used instead of the hard-coded IFDs.

- Not to be confused with the IFD-index we establish with the IFDs for a
  particular image file.
2018-07-27 17:21:27 -04:00
Dustin Oprea
7e10e5db27 ifd_builder: Added ChildWithIfdIdentity().
- Adjusted some of the tag replacement functionality.
2018-06-10 18:45:38 -04:00
Dustin Oprea
9b70a9180c ifd_enumerate: Added FindIfdFromRootIfd(). 2018-06-10 00:13:00 -04:00
Dustin Oprea
b9537b58c2 ifd_enumerate: Now parse the GPS info.
- Moved some IFD functionality out to its own file.
- Tweaked the permissions on some assets.
2018-06-09 02:11:24 -04:00
Dustin Oprea
33e3f2e4eb ifd: Renamed Ifd to IfdEnumerate. 2018-04-17 07:51:34 -04:00
Dustin Oprea
917e288adf Refactored byte-ordering to use standard binary.ByteOrder .
- ..rather than unnecessary custom implementation.
2018-04-17 06:18:31 -04:00
Dustin Oprea
172013e0f0 ifd: Implemented recursion. Refactored IFD seeking.
- tags.yaml: Uncommented previously-unhandleable tags.
2018-04-15 23:13:25 -04:00
Dustin Oprea
1511788a4e ifd: Implemented several layers of value processing. Done.
- It's going to be laborious to write unit-tests for, though.
2018-04-15 01:25:30 -04:00
Dustin Oprea
315ca60f03 ifd: Formalized visitor implementation. 2018-04-14 20:32:02 -04:00
Dustin Oprea
05fe72f929 Added tag lookup. Only a minimal number of tags are currently known. 2018-04-14 20:04:35 -04:00
Dustin Oprea
685d801489 Initial commit.
- Parsing works.
- Not yet resolving values.
- Not yet resolving the actual IDs.
- Not yet able to make changes.
2018-04-14 14:38:35 -04:00