func (x *Exif) loadSubDir(r *bytes.Reader, tagId uint16) error { tag, ok := x.main[tagId] if !ok { return nil } offset := tag.Int(0) _, err := r.Seek(offset, 0) if err != nil { return errors.New("exif: seek to sub-IFD failed: " + err.Error()) } subDir, _, err := tiff.DecodeDir(r, x.tif.Order) if err != nil { return errors.New("exif: sub-IFD decode failed: " + err.Error()) } for _, tag := range subDir.Tags { x.main[tag.Id] = tag } return nil }
func (x *Exif) loadSubDir(r *bytes.Reader, ptrName FieldName, fieldMap map[uint16]FieldName) error { tag, ok := x.main[ptrName] if !ok { return nil } offset := tag.Int(0) _, err := r.Seek(offset, 0) if err != nil { return errors.New("exif: seek to sub-IFD failed: " + err.Error()) } subDir, _, err := tiff.DecodeDir(r, x.tif.Order) if err != nil { return errors.New("exif: sub-IFD decode failed: " + err.Error()) } for _, tag := range subDir.Tags { name := fieldMap[tag.Id] x.main[name] = tag } return nil }