Commit Graph

204 Commits (903910b6a7ce4165fe935d413d3e0edd2fcea947)

Author SHA1 Message Date
Dustin Oprea 8d79b03fc5 utility.go: Added function comment. Formatted file. 2019-01-03 19:31:17 -05:00
Dustin Oprea eb7eb2b610 ifd_enumerate.go: Skip tags with invalid types.
Fixes #4.
2019-01-03 19:20:55 -05:00
Dustin Oprea d480165b94 utility: Added function to parse timestamps. 2019-01-01 22:55:30 -05:00
Dustin Oprea bb29f78ee7 ifd_enumerate_test.go: Added example for reading a single tag. 2019-01-01 01:34:56 -05:00
Dustin Oprea f2396f7fc7 exif-read-tool/main.go: Can now enable verbosity. 2018-12-25 19:46:00 -05:00
Dustin Oprea dda14b2db8 exif.go: Tightened length checks for brute-force search. 2018-12-25 19:45:46 -05:00
Dustin Oprea bf0b550eff exif.go: Check for a long-enough EXIF header when searching. 2018-12-25 18:58:44 -05:00
Dustin Oprea 5409475851
Fixed wording in comment. 2018-11-13 01:58:33 -05:00
Dustin Oprea a5784ff653
Update README.md
Replaced call to obsolete IsExif() with SearchAndExtractExif().
2018-11-13 01:47:46 -05:00
Dustin Oprea ab09051aaa ifd_enumerate: Bugfix for incorrect read semantics.
- ...to make sure we get the right number of bytes.
2018-09-16 03:42:48 -04:00
Dustin Oprea 811286316f Updated documentation for recent changes. 2018-08-01 13:10:51 -04:00
Dustin Oprea 5fcfbfd359 ci: Removed S2-incompatible, earlier versions from testing. 2018-08-01 08:44:10 -04:00
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 d3b45fae77 We now have to pass a specific tag-index in from the top.
- This will allow us to handle custom tags and, with a little more work,
  custom IFDs.
2018-07-26 22:45:43 -04:00
Dustin Oprea d8cdf29fa6 TagIndex: Refactored to prepare for custom tags.
- More specifically, to prepare the way to register non-standard IFDs
  and tags.
2018-07-26 03:08:03 -04:00
Dustin Oprea 2349792faa assets: Attached PNG standards documents to project. 2018-06-18 00:43:27 -04:00
Dustin Oprea dfbe003c0e Reorganized to not require GOPATH unless testing. 2018-06-16 09:49:14 -04:00
Dustin Oprea 7a8e5b005e ifd: Added enumeration example. 2018-06-14 04:04:31 -04:00
Dustin Oprea 86422559be ifd: Added recursive tag enumerator.
- We now embed a child-IFD index on the `Ifd`.
2018-06-14 03:52:12 -04:00
Dustin Oprea 71dbc9ff87 ifd_builder_encode: Now allow the IB to be empty.
- So we can install EXIF blocks into images that don't have them.
2018-06-13 06:16:09 -04:00
Dustin Oprea 235b1a5936 exif: Renamed ErrNotExif to ErrNoExif. 2018-06-13 05:51:28 -04:00
Dustin Oprea dcd8d23b07 ci: Quoted (and corrected) interpretation of Go versions. 2018-06-13 01:22:21 -04:00
Dustin Oprea d485d511fb type: Fixed string format. 2018-06-13 01:19:28 -04:00
Dustin Oprea 8ffa183548 ci: Added Go 1.10 testing. 2018-06-13 01:18:20 -04:00
Dustin Oprea 1abace139c type: Fix for ASCII value encodings having an extra NUL.
- Fixed some error messages for accuracy.
2018-06-13 00:48:30 -04:00
Dustin Oprea 186facf99e ifd_builder: Fix for error from SetStandard functions not adding new tags. 2018-06-11 04:42:54 -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 f998692895 type: Fixed FromString encoding for ASCII.
- We were appending a newline rather than NUL.
2018-06-10 18:45:34 -04:00
Dustin Oprea d79470a4f4 type: Now support marshaling from string to all types. 2018-06-10 03:25:44 -04:00
Dustin Oprea 9b70a9180c ifd_enumerate: Added FindIfdFromRootIfd(). 2018-06-10 00:13:00 -04:00
Dustin Oprea 80bab4b221 ci: master is now tested first. 2018-06-09 11:31:46 -04:00
Dustin Oprea 7f19a65f70 gps: Bugfix: GpsInfo method receivers now references. 2018-06-09 11:29:16 -04:00
Dustin Oprea 57f66ab0db ifd_enumerate: Renamed GPS image. 2018-06-09 03:20:17 -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 1ce5b771db ifd_enumerate: Can now elect to not resolve tag value.
- To support testing.
2018-06-08 00:41:28 -04:00
Dustin Oprea 4c3a9d79f1 ifd_enumerate: Properly handle unknown-type tags during the initial parse. 2018-06-07 23:18:36 -04:00
Dustin Oprea cda05ba702 ifd_enumerate: Now extract and store value bytes immediately. 2018-06-07 22:51:40 -04:00
Dustin Oprea 4cd9e35801 ifd_enumerate: Implemented (*Ifd).ChildWithName() .
- Corrected some tabs that weren't correctly changed to spaces.
2018-06-07 21:36:14 -04:00
Dustin Oprea f4db9f31af tags: We now use a singleton TagIndex internally.
- We now embed the tags data so that we can be used in single,
  distributable binaries..
2018-06-07 05:15:51 -04:00
Dustin Oprea 1c95c159fb ifd_builder: Renamed "FromConfig" functions.
- ..to use the word "Standard" instead, instead of having both.
- Removed original NewStandardBuilderTag function. Just used by a couple
  of tests and it conflicts with one of the renamings.
2018-06-06 19:00:53 -04:00
Dustin Oprea 92f24ca51b header: Fixed-bytes now determined by byte-order. 2018-06-06 06:53:54 -04:00
Dustin Oprea 2eb57331ff exif: Dropped requirement for incorrect/non-standard EXIF prefix. 2018-06-06 05:32:14 -04:00
Dustin Oprea d05c9b4c81 ifd_tag_entry: Decoupled test from header semantics. 2018-06-06 05:26:13 -04:00
Dustin Oprea 4c58c1c84b exif: Eliminated an offset constant. Just used for tests.
- Will simplify fixing the header issues we have. It's relative, any way
  (won't be affected by the imminent changes to the header).
2018-06-06 05:17:56 -04:00
Dustin Oprea 1d7239382b testing: Moved common testing code to test_common.
- Tweaked comments to be more concise.
2018-06-06 05:11:07 -04:00
Dustin Oprea f1b0dd3a32 exif: Streamlined header-builder.
- The ParseExifHeader() function is now completely responsible for
  header decomposition and offset information.
2018-06-06 04:56:18 -04:00
Dustin Oprea 7745cfe74c exif: Deimplemented IsExif().
- exif
  - Began deconstructing Exif type in favor of just defining those
    methods as functions.
  - Added additional tests.
2018-06-06 04:37:43 -04:00
Dustin Oprea 7fa077bb78 exif: Added test for ParseExifHeader.
- Tweaked the test names for correctness.
2018-06-06 03:52:26 -04:00