mirror of https://github.com/dsoprea/go-exif.git
ifd_enumerate: Implemented (*Ifd).ChildWithName() .
- Corrected some tabs that weren't correctly changed to spaces.pull/3/head
parent
f4db9f31af
commit
4cd9e35801
1279
ifd_builder.go
1279
ifd_builder.go
File diff suppressed because it is too large
Load Diff
|
@ -367,6 +367,23 @@ func (ifd *Ifd) ChildWithIfdIdentity(ii IfdIdentity) (childIfd *Ifd, err error)
|
|||
return nil, nil
|
||||
}
|
||||
|
||||
func (ifd *Ifd) ChildWithName(ifdName string) (childIfd *Ifd, err error) {
|
||||
defer func() {
|
||||
if state := recover(); state != nil {
|
||||
err = log.Wrap(state.(error))
|
||||
}
|
||||
}()
|
||||
|
||||
for _, childIfd := range ifd.Children {
|
||||
if childIfd.Ii.IfdName == ifdName {
|
||||
return childIfd, nil
|
||||
}
|
||||
}
|
||||
|
||||
log.Panic(ErrTagNotFound)
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (ifd *Ifd) TagValue(ite *IfdTagEntry) (value interface{}, err error) {
|
||||
defer func() {
|
||||
if state := recover(); state != nil {
|
||||
|
@ -552,7 +569,13 @@ func (ifd *Ifd) printTagTree(populateValues bool, index, level int, nextLink boo
|
|||
var err error
|
||||
|
||||
value, err = ifd.TagValue(tag)
|
||||
log.PanicIf(err)
|
||||
if err != nil {
|
||||
if log.Is(err, ErrUnhandledUnknownTypedTag) == true {
|
||||
value = UnparseableUnknownTagValuePlaceholder
|
||||
} else {
|
||||
log.Panic(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fmt.Printf("%s - TAG: %s NAME=[%s] VALUE=[%v]\n", indent, tag, tagName, value)
|
||||
|
|
|
@ -10,6 +10,10 @@ import (
|
|||
"github.com/dsoprea/go-logging"
|
||||
)
|
||||
|
||||
const (
|
||||
UnparseableUnknownTagValuePlaceholder = "!UNPARSEABLE"
|
||||
)
|
||||
|
||||
const (
|
||||
TagUnknownType_9298_UserComment_Encoding_ASCII = iota
|
||||
TagUnknownType_9298_UserComment_Encoding_JIS = iota
|
||||
|
|
Loading…
Reference in New Issue