mirror of https://github.com/dsoprea/go-exif.git
34 lines
1.7 KiB
Plaintext
34 lines
1.7 KiB
Plaintext
run the example exif reader tool against all of my images.
|
|
|
|
|
|
updating tags:
|
|
|
|
- if the data fits in the previous structure or allocation, stick with it and just update the length.
|
|
- Note that, if the size decreases to <=4 bytes, we might need to deallocate and embed the value directly in the offset LONG (per the spec).
|
|
|
|
adding tags:
|
|
|
|
- It would be safest to identify where the next IFD would start (or, (len(raw_exif_data) + 1) if we're in the last IFD), and just append the data, shift the offset of the next IFD, and update the IFD offset (either the pointer in a tag or the offset following the last IFD if we're past the first in a chain).
|
|
- We might not otherwise be able to derive the total size of the current tags given 1) those tags having an unknown type with a size that is not easily calculated, and 2) non-standard tags that we simply don't know how to parse.
|
|
- Note that we need to build a table of IFD offsets as well as keep track where the offset of each was recorded.
|
|
|
|
- allow to delete tags
|
|
- allow to delete whole IFDs (and implicitly deallocate tags).
|
|
- Only possible if we can parse them and determine the offset and length for the value.
|
|
|
|
- allow to create IFDs.
|
|
|
|
|
|
Other
|
|
==
|
|
|
|
- allow to import/export tags from structured data.
|
|
- consider writing a couple of quick tools for GPS
|
|
- parsing GeJSON and GPX data and installing GPS tags to the EXIF
|
|
- writing GeJSON and GPX data *from* the EXIF
|
|
|
|
|
|
Notes
|
|
==
|
|
We might be discretionary in allowing people to *easily* update certain undefined-type tags if they're too complex. We might provide a method to allow them to pass a raw bye-array and count and take responsibility for that values structure (so we don't prevent sufficiently-advanced users from doing from they need to do.
|