mirror of https://github.com/dsoprea/go-exif.git
They'll also now embed all of the information they need to know since it is all known where the ITEs are created. This prevents the user from having to be involved in it. This makes it much more straightforward and enjoyable to use. - ifd_tag_entry.go - newIfdTagEntry now takes and embeds `addressableBytes` and `byteOrder`. - We've dumped the `value` member that let the caller preload a parsed value (or bytes?). It's no longer necessary since this led to inconsistencies and the ITE can produce these values directly, now. - `Value()` obviously no longer takes `addressableValue` and `byteOrder` since now embedded. - `Value()` will now see and return ErrUnhandledUnknownTypedTag directly (not wrapping it, since this is a handled case). - common/type.go: FormatFromType now uses Stringer as a fallback if possible. All undefined-tag wrapper types implement it, so the same function can handle both undefined and non-undefined values, and the individual types can control the strings presented in simple listing. - Dropped "resolveValue" parameters from all of the collect, visit, and parsing functions. Resolution is now a later step performed by the caller on the ITEs, directly. - This parameter was protection against undefined-type values disrupting simple enumeration, but now the user can simply produce the list of tags and can either choose to decode their value or not, directly. If they do, they, as of earlier, recent commits, also have the ability to properly manage unhandled undefined-values so they don't crash. - The ITEs can now create ValueContext structs directly (GetValueContext()), though it might not be necessary now that the ITEs can produce the values and encodings directly. - This also allowed us to dump several other GetValueContext() implementations elsewhere since it is now self-reliant on this type and those methods were essentially kludges for the lack of this. - Dump a bunch of "Value" methods from ITEs which just weren't useful or simple enough. Replaced by the above. - Fixed `(Ifd).String()` to have a pointer receiver. |
||
---|---|---|
.. | ||
assets | ||
common | ||
exif-read-tool | ||
undefined | ||
.MODULE_ROOT | ||
LICENSE | ||
error.go | ||
exif.go | ||
exif_test.go | ||
go.mod | ||
go.sum | ||
gps.go | ||
ifd.go | ||
ifd_builder.go | ||
ifd_builder_encode.go | ||
ifd_builder_encode_test.go | ||
ifd_builder_test.go | ||
ifd_enumerate.go | ||
ifd_enumerate_test.go | ||
ifd_tag_entry.go | ||
ifd_tag_entry_test.go | ||
ifd_test.go | ||
readme.go | ||
tags.go | ||
tags_data.go | ||
tags_test.go | ||
testing_common.go | ||
utility.go | ||
utility_test.go |
readme.go
// exif parses raw EXIF information given a block of raw EXIF data. It can also // construct new EXIF information, and provides tools for doing so. This package // is not involved with the parsing of particular file-formats. // // The EXIF data must first be extracted and then provided to us. Conversely, // when constructing new EXIF data, the caller is responsible for packaging // this in whichever format they require. package exif