239 Commits

Author SHA1 Message Date
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
Dustin Oprea
32664e6098 exif: Streamlined EXIF header parse. Made to behave like IsExif().
- We're prepping to deimplement IsExif() because it's just a lame
  duplication of ParseExifHeader().
  - Transitional step to being able to fix incorrect-header problem.
2018-06-06 03:42:18 -04:00
Dustin Oprea
570c4d582c ifd_builder: renamed builderTag to BuilderTag.
- It's probably a generally good idea.
  - These are usually created by other methods, but they're regularly
    interacted with when you want to make tag changes and by making them
    private we can't public official, testable examples.

- Corrected names for new examples.
2018-05-29 14:47:30 -04:00
Dustin Oprea
81b804b70d documentation: Added GoDoc badge. 2018-05-29 14:30:19 -04:00
Dustin Oprea
b7368b1fb4 ifd_enumerate: Implemented ChildWithIfdIdentity. 2018-05-29 03:45:09 -04:00
Dustin Oprea
dc6bb3e4b1 ifd_builder: Fixed test. 2018-05-29 02:15:18 -04:00
Dustin Oprea
6a9c7f28b1 ifd_builder: Added test for tag update.
- Added get-thumbnail and update-tag examples.
2018-05-29 02:09:01 -04:00
Dustin Oprea
abbf7e0d92 ifd_builder: builderTag is now passed by reference. 2018-05-29 01:32:09 -04:00
Dustin Oprea
0a561e98ed Fixed tests for recent changes. 2018-05-29 00:55:43 -04:00
Dustin Oprea
8ce7625fc9 ifd_builder_encode: Fixed addressing.
- Corrects the resolution issue that we were experiencing in sibling
  IFDs.
2018-05-28 23:47:47 -04:00
Dustin Oprea
080ff7d07d Adjusted some string representations. Fixed some hex-encodings.
- unknown: We no longer truncate UNDEFINED UserComment values.
  - This is one less thing that will be different between what we read
    and how we encode.
2018-05-28 21:14:15 -04:00
Dustin Oprea
3c1c668a9f encode: We now encode child IFDs as they occur.
- ..rather than after the normal tags.
2018-05-28 20:04:02 -04:00
Dustin Oprea
5996e32e27 type_encode: Added to-do. 2018-05-25 21:12:45 -04:00
Dustin Oprea
75ff008365 thumbnails: Reimplemented to use normal decode flow.
- We added a trick to overcome the fact that the tag is a slice of longs
  rather than bytes (and would usually cause check errors and alignment
  problems), but this allows us to use the normal allocation and
  decoding flows that are used by normal tags.
  - Made things simpler, but we're still mis-encoding the
    thumbnail, somehow/somewhere.
2018-05-25 21:12:24 -04:00
Dustin Oprea
c93f37a85d ifd_enumerate: Now parse and expose thumbnail. 2018-05-24 15:27:45 -04:00
Dustin Oprea
d7ff9ccbbe Tag dumps now include indices. 2018-05-24 03:19:46 -04:00